/* The Binnacle (beta): the house look for the new core (docs/binnacle_beta.md; the rules: python3 bot/house_style.py).
   @what   the stateroom: a mahogany carcass and hood, green leather billets in a thin gold rim with a heavier brass foot, the tabs and the
           Binnacle buttons plates of a natural insert in a bezel of brass stock (each its own patch from its identity, stock() in js/base.js),
           every other press an embossed brass medallion with its icon, the house faces only (fonts.css), touch first (48 px on a phone)
   @why    Xathal, 27 Oct 2026 01:21 Paris: "this is inteneded to be identical to using the current binnacle in experience except more reliable
           and flixible"; the house style is rules (26 Oct 2026, 01:02 Paris: "make the house style a bit more prescriptive so everyone follows
           it by default")
   @contract no inline style in the page (its policy allows none); icons are masks of the house set, carried below as variables; nothing
           fetched from elsewhere
   @replicate any page: the variables, the rim, the plate, the medallion */
:root{--lbl:Stateroom,"Alegreya SC",serif;--serif:Journal,"Atkinson Hyperlegible Next",serif;--mono:Ledger,"Atkinson Hyperlegible Mono",ui-monospace,monospace;
  --ttl:Gilt,Stateroom,serif;--txt:#ece2c9;--dim:#b3a688;--gilt:#e3c67f;--rim:#b08a3e;--trouble:#c4553f;--ok:#8fcf9f;--wait:#efc062;
  --p0:#18221c;--p1:#1e2922;--p2:#253229;--p3:#2f3d33;--bwall:1.5px;--bfoot:12px;
  --bbrass:linear-gradient(180deg,rgba(255,246,210,.55) 0%,rgba(255,246,210,0) 40%,rgba(60,30,0,.35) 100%),url(art/m_brass.jpg) 0 0/128px 128px;
  --ink:#24160a;--tap:40px}
@media (pointer:coarse){:root{--tap:48px}}
:root{
  --i-plus:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round'%3E%3Cpath d='M12 5v14M5 12h14'/%3E%3C/svg%3E");
  --i-anchor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='4.9' r='2'/%3E%3Cpath d='M12 6.9v14M8.2 10.2h7.6'/%3E%3Cpath d='M4.4 13.4a7.6 7.6 0 0 0 15.2 0'/%3E%3Cpath d='M2.8 15.4l1.6-2 2 1.4M21.2 15.4l-1.6-2-2 1.4'/%3E%3C/svg%3E");
  --i-bottle:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cdefs%3E%3CclipPath id='w'%3E%3Cpath d='M0 0V18H.6c1.7-1.4 3.4-1.4 5.1 0s3.4 1.4 5.1 0 3.4-1.4 5.1 0 3.4 1.4 5.1 0 1.6-.8 2.8-.6L24 17.4V0Z'/%3E%3C/clipPath%3E%3C/defs%3E%3Cg clip-path='url(%23w)'%3E%3Cg transform='translate(12.4 12.6) rotate(30) scale(.94)'%3E%3Cpath d='M-6.6 14V1.4C-6.6-2.6-2.6-4-2.6-6.8V-9.4H2.6V-6.8C2.6-4 6.6-2.6 6.6 1.4V14' fill='none' stroke='%23000' stroke-width='1.6' stroke-linejoin='round'/%3E%3Cpath d='M-2.1-9.2C-2.6-10-3.7-10.5-3.7-11.8C-3.7-13.1 -2-13.7 0-13.7S3.7-13.1 3.7-11.8C3.7-10.5 2.6-10 2.1-9.2Z' fill='%23000'/%3E%3Cg fill='none' stroke='%23000' stroke-width='.85'%3E%3Cpath d='M-1.25-6.6V15M1.25-6.6V15'/%3E%3Cellipse cx='0' cy='-6.6' rx='1.25' ry='.6'/%3E%3C/g%3E%3Cpath fill='%23000' fill-rule='evenodd' d='M-1.85-2.75H1.85V-1.65H-1.85ZM0-3.1A.85.85 0 1 0 0-1.35A.85.85 0 1 0 0-3.05Z'/%3E%3Ccircle cx='0' cy='-2.2' r='.9' fill='none' stroke='%23000' stroke-width='.6'/%3E%3C/g%3E%3C/g%3E%3Cpath d='M.6 18c1.7-1.4 3.4-1.4 5.1 0s3.4 1.4 5.1 0 3.4-1.4 5.1 0 3.4 1.4 5.1 0 1.6-.8 2.8-.6' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'/%3E%3Cpath d='M4 21.6c1.3-.9 2.6-.9 3.9 0s2.6.9 3.9 0 2.6-.9 3.9 0' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E");
  --i-bearing:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='8.6'/%3E%3Cpath d='M12 3.4v2M20.6 12h-2M12 20.6v-2M3.4 12h2'/%3E%3Cpath d='M12 12l4.6-4.6M16.9 7.1l-3.2.5M16.9 7.1l-.5 3.2'/%3E%3Ccircle cx='12' cy='12' r='1'/%3E%3C/svg%3E");
  --i-say:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4.1 5.4h15.8a1.6 1.6 0 0 1 1.6 1.6v8a1.6 1.6 0 0 1-1.6 1.6H10.2l-4.6 3.6v-3.6H4.1A1.6 1.6 0 0 1 2.5 15V7a1.6 1.6 0 0 1 1.6-1.6z'/%3E%3Cpath d='M9 11l2 0M13 11h2'/%3E%3C/svg%3E");
  --i-flag:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5.5 21V3.8M5.5 4h11.5l-2.5 4.2 2.5 4.3H5.5'/%3E%3C/svg%3E");
  --i-device:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='6.6' y='2.6' width='10.8' height='18.8' rx='2.2'/%3E%3Cpath d='M10.4 5.3h3.2'/%3E%3Ccircle cx='12' cy='18.1' r='.9'/%3E%3C/svg%3E");
  --i-beam:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 4.2h3M6.5 4.2v1.8M4.2 6h4.6v10H4.2zM3.5 18.2h6M10.5 8.6 21 4.6M10.5 13.4 21 17.4M10.5 11H21'/%3E%3C/svg%3E");
  --i-shield:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3.4l7.6 2.8v5.7c0 4.6-3.2 7.6-7.6 8.7-4.4-1.1-7.6-4.1-7.6-8.7V6.2z'/%3E%3Cpath d='M8.8 12l2.3 2.3 4.3-4.4'/%3E%3C/svg%3E");
  --i-rose:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9.2'/%3E%3Cpath d='M12 3.6l2 8.4-2 8.4-2-8.4z' fill='%23000'/%3E%3Cpath d='M3.6 12 12 10l8.4 2-8.4 2z'/%3E%3C/svg%3E");
  --i-close:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M9 9l6 6M15 9l-6 6'/%3E%3C/svg%3E");
  --i-copy:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='8.2' y='8.2' width='11.6' height='12.8' rx='1.6'/%3E%3Cpath d='M15.8 8.2V5.6a1.6 1.6 0 0 0-1.6-1.6H5.8a1.6 1.6 0 0 0-1.6 1.6v9.6a1.6 1.6 0 0 0 1.6 1.6h2.4'/%3E%3C/svg%3E");
  --i-stop:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9.2'/%3E%3Crect x='8.4' y='8.4' width='7.2' height='7.2' rx='1.2' fill='%23000' stroke='none'/%3E%3C/svg%3E");
  --i-plane:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21.2 2.8 10.4 13.6'/%3E%3Cpath d='M21.2 2.8 14.5 21.2l-4.1-7.6-7.6-4.1z'/%3E%3C/svg%3E");
  --i-key:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='8' cy='12' r='4'/%3E%3Cpath d='M12 12h8.5M17.6 12v3M20.5 12v2.4'/%3E%3C/svg%3E");
  --i-camera:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 8h3l1.6-2.5h6.8L17 8h3v11H4z'/%3E%3Ccircle cx='12' cy='13.2' r='3.4'/%3E%3C/svg%3E");
  --i-radiomic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='7.4' y='2.2' width='9.6' height='13.6' rx='3.8'/%3E%3Cpath d='M10.4 6.7h3.6M10.4 10h3.6'/%3E%3Cpath d='M5.3 6.4v5'/%3E%3Cpath d='M12.2 15.8c1.7.6 1.7 1.4 0 2s-1.7 1.4 0 2 1.7 1.4 0 2'/%3E%3C/svg%3E");
  --i-refresh:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M19.4 12.6a7.5 7.5 0 1 1-2.3-6'/%3E%3Cpath d='M19.6 3.8v4.3h-4.3'/%3E%3C/svg%3E");
  --i-quill:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4.4 20.6 19.6 4.4'/%3E%3Cpath d='M19.6 4.4C14 4.9 9.6 9.3 8.4 16'/%3E%3Cpath d='M19.6 4.4c-.4 6-4.5 10.3-11.2 11.6'/%3E%3Cpath d='M11.2 10.6l2.6.4M13.4 8.2l2.6.4'/%3E%3C/svg%3E");
  --i-tidy:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 3l-8.6 8.6'/%3E%3Cpath d='M10.6 8.8L3.9 12l7.1 7.1 3.2-6.7z'/%3E%3Cpath d='M11.8 10L6.3 14.4M13 11.2l-4.4 5.5'/%3E%3C/svg%3E");
  --i-seal:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' fill-rule='evenodd' d='M23.30 12.00 L22.92 12.72 L22.08 13.33 L21.38 13.87 L21.29 14.49 L21.74 15.31 L22.20 16.22 L22.13 16.99 L21.40 17.43 L20.36 17.59 L19.56 17.80 L19.28 18.39 L19.35 19.35 L19.33 20.36 L18.86 20.94 L17.97 20.93 L16.98 20.62 L16.21 20.53 L15.74 21.02 L15.38 21.96 L14.89 22.80 L14.19 23.02 L13.39 22.54 L12.64 21.83 L12.00 21.50 L11.36 21.83 L10.61 22.54 L9.81 23.02 L9.11 22.80 L8.62 21.96 L8.26 21.02 L7.79 20.53 L7.03 20.62 L6.03 20.93 L5.14 20.94 L4.67 20.36 L4.65 19.35 L4.72 18.39 L4.44 17.80 L3.64 17.59 L2.60 17.42 L1.87 16.99 L1.80 16.22 L2.26 15.31 L2.71 14.49 L2.62 13.87 L1.92 13.33 L1.08 12.72 L0.70 12.00 L1.08 11.28 L1.92 10.67 L2.62 10.13 L2.71 9.51 L2.26 8.69 L1.80 7.78 L1.87 7.01 L2.60 6.58 L3.64 6.41 L4.44 6.20 L4.72 5.61 L4.65 4.65 L4.67 3.64 L5.14 3.06 L6.03 3.07 L7.02 3.38 L7.79 3.47 L8.26 2.98 L8.62 2.04 L9.11 1.20 L9.81 0.98 L10.61 1.46 L11.36 2.17 L12.00 2.50 L12.64 2.17 L13.39 1.46 L14.19 0.98 L14.89 1.20 L15.38 2.04 L15.74 2.98 L16.21 3.47 L16.98 3.38 L17.97 3.07 L18.86 3.06 L19.33 3.64 L19.35 4.65 L19.28 5.61 L19.56 6.20 L20.36 6.41 L21.40 6.57 L22.13 7.01 L22.20 7.78 L21.74 8.69 L21.29 9.51 L21.38 10.13 L22.08 10.67 L22.92 11.28Z M12 7.2a2.3 2.3 0 0 1 1.3 4.2l.8 4.6h-4.2l.8-4.6A2.3 2.3 0 0 1 12 7.2z'/%3E%3C/svg%3E");
  --i-halo:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cellipse cx='12' cy='15' rx='9' ry='3.6' stroke-width='2.4'/%3E%3Cpath d='M12 4.4v2.6M6.6 5.9l1.3 2M17.4 5.9l-1.3 2M2.8 9.2l2.1 1M21.2 9.2l-2.1 1'/%3E%3C/svg%3E");
  --i-yin:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='10' fill='none' stroke='%23000' stroke-width='1.6'/%3E%3Cpath fill='%23000' fill-rule='evenodd' d='M12 2A10 10 0 0 1 12 22A5 5 0 0 1 12 12A5 5 0 0 0 12 2ZM12 15.4a1.6 1.6 0 1 0 0 3.2a1.6 1.6 0 1 0 0-3.2Z'/%3E%3Ccircle cx='12' cy='7' r='1.6' fill='%23000'/%3E%3C/svg%3E");
  --i-yang:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='10' fill='none' stroke='%23000' stroke-width='1.6'/%3E%3Cpath fill='%23000' fill-rule='evenodd' d='M12 2A10 10 0 0 0 12 22A5 5 0 0 1 12 12A5 5 0 0 0 12 2ZM12 5.4a1.6 1.6 0 1 0 0 3.2a1.6 1.6 0 1 0 0-3.2Z'/%3E%3Ccircle cx='12' cy='17' r='1.6' fill='%23000'/%3E%3C/svg%3E");
  --i-usage:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3.8 17a8.2 8.2 0 0 1 16.4 0'/%3E%3Cpath d='M12 17l4.3-5.2'/%3E%3Ccircle cx='12' cy='17' r='1.4'/%3E%3Cpath d='M6.2 12.2l1.3 1M17.8 12.2l-1.3 1M12 8.8v1.6'/%3E%3C/svg%3E");
  --i-bndadd:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3.4l7.6 2.8v5.7c0 4.6-3.2 7.6-7.6 8.7-4.4-1.1-7.6-4.1-7.6-8.7V6.2z'/%3E%3Cpath d='M12 8.7v6.2M8.9 11.8h6.2'/%3E%3C/svg%3E");
  --i-folder:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3.5 6h6l2 2.2h9v10.3h-17z'/%3E%3C/svg%3E");
  --i-trash:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4.5 7h15M9.5 7V4.5h5V7M6.5 7l1 12.5h9l1-12.5M10.2 10.5v6M13.8 10.5v6'/%3E%3C/svg%3E");
  --i-cog:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='7.6' stroke-width='3.2' stroke-linecap='butt' stroke-dasharray='2.6 3.37'/%3E%3Ccircle cx='12' cy='12' r='5.5'/%3E%3Ccircle cx='12' cy='12' r='2.1'/%3E%3C/svg%3E");
  --i-person:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='8' r='3.8'/%3E%3Cpath d='M4.5 20.5c.6-4 3.6-6.2 7.5-6.2s6.9 2.2 7.5 6.2'/%3E%3C/svg%3E");
  --i-mfill:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 5h16v14H4z'/%3E%3Cpath d='M7 9h10M7 12h10M7 15h10'/%3E%3C/svg%3E");
  --i-mmin:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 17h12'/%3E%3C/svg%3E");
  --i-mhome:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3.5 11.5 12 4l8.5 7.5M6 10v9.5h12V10M10 19.5v-5h4v5'/%3E%3C/svg%3E");
  --i-dots:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5.5 12h.01M12 12h.01M18.5 12h.01' stroke-width='3.2'/%3E%3C/svg%3E");
  --i-cpu:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='6.5' y='6.5' width='11' height='11' rx='1.4'/%3E%3Crect x='9.6' y='9.6' width='4.8' height='4.8' rx='.6'/%3E%3Cpath d='M9.5 3v3.5M14.5 3v3.5M9.5 17.5V21M14.5 17.5V21M3 9.5h3.5M3 14.5h3.5M17.5 9.5H21M17.5 14.5H21'/%3E%3C/svg%3E");
  --i-storage:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cellipse cx='12' cy='5.8' rx='7' ry='2.6'/%3E%3Cpath d='M5 5.8v12.4c0 1.4 3.1 2.6 7 2.6s7-1.2 7-2.6V5.8M5 12c0 1.4 3.1 2.6 7 2.6s7-1.2 7-2.6'/%3E%3C/svg%3E");
  --i-route:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6.4 17.6c2.4-4.2 5.2-2.4 6.6-5.8s3.4-5 4.8-5.6'/%3E%3Ccircle cx='5' cy='19' r='1.8'/%3E%3Ccircle cx='19.1' cy='5' r='1.8'/%3E%3C/svg%3E");
  --i-busker:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 13.6h18M5.6 13.6c0 3.6 2.9 6 6.4 6s6.4-2.4 6.4-6'/%3E%3Cpath d='M13.6 3.4v6.4M13.6 3.4c1.4.4 2.6 1.3 3.2 2.6'/%3E%3Ccircle cx='12' cy='9.9' r='1.7'/%3E%3C/svg%3E");
}
*{box-sizing:border-box}
html,body{margin:0;height:100%}
body{color:var(--txt);font:16px/1.45 var(--serif);font-variant-numeric:lining-nums;background-color:#3a1a0e;overflow:hidden;
  background-image:radial-gradient(ellipse 85% 52% at 50% -6%,rgba(255,204,128,.30),rgba(255,204,128,.08) 36%,rgba(255,204,128,0) 68%),
    linear-gradient(180deg,rgba(0,0,0,0) 55%,rgba(10,4,1,.55) 100%),url(art/w_swietenia.jpg);
  background-size:auto,auto,1400px auto;-webkit-text-size-adjust:100%}
a{color:var(--gilt)}
[hidden]{display:none!important}
.dim{color:var(--dim)} .small{font-size:14px} .ok{color:var(--ok)} .bad{color:#ef8f7c}
button{font:inherit;color:inherit}

/* the ship: hood, bar, then the side column and the broadside */
#ship{display:grid;grid-template-rows:auto auto 1fr;height:100vh;height:100dvh;max-width:1600px;margin:0 auto;padding:8px 10px 10px;gap:8px}

/* the hood: hand-cut mahogany, boxwood stringing over ebony at its edge, the name in gilt, the brass badge whose rose swings while BOSUN works */
.hood{position:relative;display:flex;align-items:center;gap:14px;padding:8px 16px;border-radius:14px 14px 6px 6px;min-width:0;
  background:linear-gradient(180deg,rgba(255,226,178,.16),rgba(0,0,0,.18)),url(art/w_hood.jpg) 0 0/1380px auto,#3a1a0e;
  box-shadow:inset 0 -3px 0 #e8d7ad,inset 0 -5px 0 #120804,0 3px 8px rgba(0,0,0,.6)}
.hood h1{margin:0;font:400 28px/1 var(--ttl);letter-spacing:.12em;color:var(--gilt);text-shadow:0 1px 0 #1c0b03,0 0 10px rgba(255,200,110,.18);white-space:nowrap}
.badge{flex:none;width:46px;height:46px;border-radius:50%;padding:4px;
  background:linear-gradient(165deg,rgba(255,248,218,.9),rgba(255,236,190,.1) 30%,rgba(64,38,8,.5) 55%,rgba(255,232,170,.6) 78%,rgba(86,56,14,.4)),url(art/m_stock.jpg) -30px -50px/128px 128px;
  box-shadow:0 2px 3px rgba(0,0,0,.55),0 0 0 1px rgba(38,16,3,.75)}
.badge img{display:block;width:100%;height:100%;border-radius:50%}
body.busy .badge img{animation:swing 2.4s ease-in-out infinite}
@keyframes swing{0%,100%{transform:rotate(-14deg)}50%{transform:rotate(14deg)}}
.hood .chip{flex:none}
.hood .where{margin-left:auto;display:flex;align-items:center;justify-content:flex-end;gap:10px;min-width:0;flex:0 1 auto}
.hood .where .chip{min-width:0;overflow:hidden;text-overflow:ellipsis}

/* chips: a thing's own name or state, never a press */
.chip{display:inline-flex;align-items:center;gap:6px;min-height:28px;padding:2px 12px;border-radius:14px;border:1px solid rgba(227,198,127,.55);
  background:rgba(10,16,12,.55);font:500 13px/1.2 var(--lbl);letter-spacing:.06em;color:#f0e2bd;white-space:nowrap}
.chip.gold{color:var(--gilt);border-color:var(--gilt)}

/* plates: an insert of a natural material in a bezel of brass stock (the tabs along the top, the Binnacle buttons) */
.pl{--mat:url(art/m_pearl.jpg);position:relative;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:var(--tap);min-width:0;
  padding:0 14px;border:3px solid transparent;border-radius:10px;cursor:pointer;user-select:none;-webkit-user-select:none;white-space:nowrap;
  font:700 13px/1.1 var(--lbl);font-variant-numeric:lining-nums;letter-spacing:.08em;text-transform:uppercase;color:var(--ink);text-shadow:0 1px 0 rgba(255,249,228,.6);
  background:linear-gradient(180deg,rgba(255,253,244,.34) 0%,rgba(255,253,244,.08) 30%,rgba(255,253,244,0) 50%,rgba(40,20,0,.14) 100%) padding-box,
    var(--mat) var(--mo,0 0)/128px 128px padding-box,
    linear-gradient(var(--ba,165deg),rgba(255,248,218,calc(var(--bh,.6) * .95)) 0%,rgba(255,236,190,.10) 24%,rgba(64,38,8,.46) 52%,rgba(255,232,170,calc(var(--bh,.6) * .6)) 76%,rgba(86,56,14,.40) 100%) border-box,
    url(art/m_stock.jpg) var(--bo,0 0)/128px 128px border-box;
  box-shadow:0 2px 3px rgba(0,0,0,.55),0 0 0 1px rgba(38,16,3,.75),inset 0 1px 2px rgba(40,20,0,.40),inset 0 -1px 0 rgba(255,244,214,.30)}
.pl:active{transform:translateY(1px);filter:brightness(.96)}
.pl:focus-visible,.md:focus-visible{outline:2px solid var(--gilt);outline-offset:2px}
.pl[aria-disabled="true"],.pl:disabled{cursor:default;filter:grayscale(.8) brightness(.62);transform:none}
.pl .ic{flex:none;width:18px;height:18px;background:var(--ink);-webkit-mask:var(--ico) center/contain no-repeat;mask:var(--ico) center/contain no-repeat}
.pl .w{overflow:hidden;text-overflow:ellipsis}
.pl.paua{--mat:url(art/m_paua.jpg)} .pl.jade{--mat:url(art/m_jade.jpg)} .pl.coral{--mat:url(art/m_coral.jpg)} .pl.amethyst{--mat:url(art/m_amethyst.jpg)}
.pl.jasper{--mat:url(art/m_jasper.jpg)} .pl.brass{--mat:url(art/m_brass.jpg)}
/* the chosen tab lit from within, a golden lustre, the halo small */
.pl.on{box-shadow:inset 0 0 0 1px rgba(255,224,146,.9),0 0 0 1px rgba(255,232,165,.9),0 0 7px 1px rgba(255,190,80,.24),0 2px 3px rgba(0,0,0,.45)}
.pl.on::after{content:"";position:absolute;inset:-3px;border-radius:10px;pointer-events:none;
  background:radial-gradient(ellipse 70% 60% at 50% 55%,rgba(255,214,120,.38),rgba(255,214,120,0) 70%)}
.pl .nums{margin-left:4px;display:inline-flex;gap:3px}
.badge-n{min-width:18px;height:18px;padding:0 5px;border-radius:9px;font:700 11px/18px var(--lbl);text-align:center;color:#fff;background:#b3261e;text-shadow:none}
.badge-n.blk{background:#1a1208}

/* medallions: every other press, embossed brass with its icon */
.md{flex:none;position:relative;width:var(--tap);height:var(--tap);border-radius:50%;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;padding:0;
  border:1px solid #6b4c1c;background:radial-gradient(circle at 35% 30%,rgba(255,246,210,.55),rgba(255,246,210,0) 55%),url(art/m_brass.jpg) center/120px;
  box-shadow:inset 0 1px 0 rgba(255,240,200,.6),inset 0 -2px 3px rgba(0,0,0,.35),0 2px 5px rgba(0,0,0,.5)}
.md .ic{width:56%;height:56%;background:#2a1806;-webkit-mask:var(--ico) center/contain no-repeat;mask:var(--ico) center/contain no-repeat}
.md:active{transform:translateY(1px)}
.md:disabled,.md[aria-disabled="true"]{cursor:default;filter:grayscale(.7) brightness(.6)}
.md.lit{background:linear-gradient(#f6dc94,#c99d48);box-shadow:inset 0 0 0 1px #8a6a2c,0 0 9px rgba(240,200,110,.5)}
.md.big{width:calc(var(--tap) + 12px);height:calc(var(--tap) + 12px)}
/* a word press: an embossed plaque of one word */
.pq{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:calc(var(--tap) - 4px);padding:0 14px;border-radius:8px;cursor:pointer;
  border:1px solid #6b4c1c;background:linear-gradient(180deg,rgba(255,246,210,.45),rgba(255,246,210,0) 45%,rgba(60,30,0,.3)),url(art/m_brass.jpg) center/140px;
  font:700 13px/1 var(--lbl);letter-spacing:.1em;text-transform:uppercase;color:#2a1806;text-shadow:0 1px 0 rgba(255,240,200,.5);
  box-shadow:inset 0 1px 0 rgba(255,240,200,.6),inset 0 -2px 3px rgba(0,0,0,.3),0 2px 4px rgba(0,0,0,.45)}
.pq:disabled{cursor:default;filter:grayscale(.7) brightness(.6)}
.pq.red{background:linear-gradient(180deg,rgba(255,220,200,.35),rgba(60,10,0,.35)),url(art/m_coral.jpg) center/140px}

/* the icons: each press names its own (--ico) */
.i-anchor{--ico:var(--i-anchor)} .i-bottle{--ico:var(--i-bottle)} .i-bearing{--ico:var(--i-bearing)} .i-say{--ico:var(--i-say)} .i-flag{--ico:var(--i-flag)}
.i-device{--ico:var(--i-device)} .i-beam{--ico:var(--i-beam)} .i-shield{--ico:var(--i-shield)} .i-rose{--ico:var(--i-rose)} .i-close{--ico:var(--i-close)}
.i-copy{--ico:var(--i-copy)} .i-stop{--ico:var(--i-stop)} .i-plane{--ico:var(--i-plane)} .i-key{--ico:var(--i-key)} .i-camera{--ico:var(--i-camera)}
.i-radiomic{--ico:var(--i-radiomic)} .i-refresh{--ico:var(--i-refresh)} .i-quill{--ico:var(--i-quill)} .i-tidy{--ico:var(--i-tidy)} .i-seal{--ico:var(--i-seal)}
.i-halo{--ico:var(--i-halo)} .i-usage{--ico:var(--i-usage)} .i-add{--ico:var(--i-plus)} .i-folder{--ico:var(--i-folder)} .i-trash{--ico:var(--i-trash)}
.i-cog{--ico:var(--i-cog)} .i-person{--ico:var(--i-person)} .i-fill{--ico:var(--i-mfill)} .i-min{--ico:var(--i-mmin)} .i-home{--ico:var(--i-mhome)}
.i-dots{--ico:var(--i-dots)} .i-cpu{--ico:var(--i-cpu)} .i-storage{--ico:var(--i-storage)} .i-route{--ico:var(--i-route)} .i-busker{--ico:var(--i-busker)}

/* the bar: the berths in two, yin (the settings) then yang (what he acts in), a dashed gold line where they meet; then home, the bunks and + */
#bar{display:flex;flex-wrap:wrap;align-items:center;gap:6px;min-width:0}
#bar .side{display:flex;flex-wrap:wrap;gap:6px}
#bar .meet{flex:none;align-self:stretch;width:22px;position:relative}
#bar .meet::before{content:"";position:absolute;left:10px;top:2px;bottom:2px;border-left:2px dashed var(--gilt);opacity:.9}
#bar .meet::after{content:"";position:absolute;left:3px;top:50%;width:16px;height:16px;margin-top:-8px;border-radius:50%;background:var(--gilt);
  -webkit-mask:var(--i-yin) center/contain no-repeat;mask:var(--i-yin) center/contain no-repeat}
#bar .gap{flex:none;width:10px}
#bar .pl{min-height:36px;padding:0 10px;font-size:12px}
#bar .pl.bunk{--mat:url(art/m_paua.jpg)}
#bar .pl.home{--mat:url(art/m_brass.jpg)}
#bar .md{width:36px;height:36px}
#bar .ren{min-height:36px;width:160px;padding:0 10px;border-radius:9px;border:1px solid var(--gilt);background:#0e1611;color:var(--txt);font:600 13px var(--lbl);letter-spacing:.06em}

/* the side column: the Binnacle buttons, the same on every tab and in the same places */
#main{display:grid;grid-template-columns:auto 1fr;gap:10px;min-height:0}
#col{display:flex;flex-direction:column;gap:6px;min-height:0;overflow-y:auto;padding:2px}
#col .pl{justify-content:flex-start;width:176px;min-height:38px;font-size:12px;padding:0 10px}
#col .pl.stop{--mat:url(art/m_coral.jpg)}
#col .foot{margin-top:auto;display:flex;flex-direction:column;gap:6px;padding-top:8px}
#col .who{padding:8px 10px;border-radius:10px;background:rgba(8,14,10,.5);box-shadow:inset 0 0 0 1px rgba(176,138,62,.35)}
#col .who b{display:block;font:600 16px/1.2 var(--lbl);letter-spacing:.06em;color:#f6e6bf;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#col .who span{display:block;font:500 12px/1.3 var(--lbl);letter-spacing:.05em;color:var(--dim)}
#col .menu{display:flex;flex-direction:column;gap:6px;padding:8px;border-radius:10px;background:rgba(8,14,10,.6);box-shadow:inset 0 0 0 1px rgba(227,198,127,.4)}
#col .menu select{min-height:36px;border-radius:8px;border:1px solid #7a6330;background:#0e1611;color:var(--txt);font:14px var(--lbl);padding:0 8px}

/* the house billet: a thin gold edge round green leather, its foot a little heavier; no band, no ✥ */
.hbill{position:relative;border:var(--bwall) solid var(--rim);border-radius:12px;background-color:var(--p0);
  background-image:linear-gradient(rgba(255,240,205,.055),rgba(255,240,205,.025)),url(art/hide_desk.jpg);background-size:auto,2016px 2016px;
  box-shadow:0 3px 10px rgba(0,0,0,.5);padding:0 0 var(--bfoot)}
.hbill::after{content:"";position:absolute;left:calc(-1 * var(--bwall));right:calc(-1 * var(--bwall));bottom:calc(-1 * var(--bwall));height:var(--bfoot);
  border-radius:0 0 12px 12px;background:var(--bbrass);pointer-events:none}

/* the broadside: its row (the title, its own buttons after it), its body, BOSUN popping up over its foot, the line at its foot */
#broad{display:flex;flex-direction:column;min-height:0;min-width:0}
#broad > .brow{flex:none;display:flex;align-items:center;gap:8px;padding:8px 12px;border-bottom:1px solid rgba(201,162,74,.3);min-width:0}
#broad > .brow h2{margin:0;font:400 20px/1.2 var(--ttl);letter-spacing:.1em;color:var(--gilt);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
#broad > .brow .acts{display:flex;gap:6px;margin-left:auto}
#stage{position:relative;flex:1 1 auto;min-height:0}
#body{position:absolute;inset:0;overflow:auto;padding:12px}

/* billettes: a 1 px hairline on green, its head an icon and a name, its latest under it, a few presses; dividing their billet equally */
.bhome{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px;align-content:start}
.btlt{min-width:0;border:1px solid var(--p3);border-radius:10px;background:var(--p1);padding:10px 12px;display:flex;flex-direction:column;gap:8px}
.btlt > .hd{display:flex;align-items:center;gap:8px;min-width:0}
.btlt > .hd .ic{flex:none;width:20px;height:20px;background:var(--gilt);-webkit-mask:var(--ico) center/contain no-repeat;mask:var(--ico) center/contain no-repeat}
.btlt > .hd b{font:600 15px/1.2 var(--lbl);letter-spacing:.08em;text-transform:uppercase;color:var(--gilt);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.btlt > .hd .acts{margin-left:auto;display:flex;gap:6px}
.btlt .md{width:34px;height:34px}
.row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.row > input{flex:1 1 180px}
input[type=password],input[type=text]{min-height:var(--tap);padding:0 12px;border-radius:9px;border:1px solid #7a6330;background:#0e1611;color:var(--txt);
  font:16px var(--serif);box-shadow:inset 0 2px 5px rgba(0,0,0,.6);min-width:0}
input::placeholder,textarea::placeholder{color:rgba(236,226,201,.42)}
input:focus,textarea:focus{outline:2px solid rgba(227,198,127,.6);outline-offset:1px}
.ways{display:flex;flex-direction:column;gap:6px}
.unl{display:flex;flex-wrap:wrap;gap:6px}
.unl .chip .x{border:0;background:none;color:#e9d5a4;cursor:pointer;font:600 16px var(--lbl);min-width:24px;min-height:24px;border-radius:12px;padding:0}
.unl .chip .x:hover{background:rgba(227,198,127,.18)}

/* the book of boxes: each box a card, led by its own mark */
.box{padding:8px 10px;border-radius:9px;background:rgba(8,14,10,.42);box-shadow:inset 0 0 0 1px rgba(176,138,62,.25);display:flex;flex-direction:column;gap:4px}
.box .hd{display:flex;align-items:center;gap:8px;min-width:0}
.box .hd b{font:600 15px/1.2 var(--lbl);letter-spacing:.06em;color:#f6e6bf;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.box .ln{font-size:14px;color:#e6dcc3;overflow-wrap:anywhere}
.own{width:26px;height:26px;flex:none;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;overflow:hidden;
  background:radial-gradient(circle at 50% 40%,#22382a,#0c1610);box-shadow:inset 0 0 0 1.5px rgba(214,176,92,.75),0 1px 2px rgba(0,0,0,.5);font:700 11px/1 var(--lbl);color:#f6e6bf}
.own img{width:86%;height:86%;object-fit:contain;display:block}
.dot{display:inline-block;width:10px;height:10px;border-radius:50%;flex:none}
.dot.up{background:#7fc28f;box-shadow:0 0 6px rgba(127,194,143,.6)} .dot.down{background:#8c8170} .dot.wait{background:#c9a24a}
.qrcam{position:relative;border-radius:10px;overflow:hidden;border:1.5px solid var(--rim);background:#000;width:100%}
.qrcam video{display:block;width:100%;max-height:40vh;object-fit:cover}
.qrcam .md{position:absolute;top:8px;right:8px;width:34px;height:34px}

/* BOSUN: his conversation pops up over the broadside's foot from his anchor; his level a gold bar */
#bp{position:absolute;left:10px;right:10px;bottom:0;display:flex;flex-direction:column;gap:8px;overflow:auto;padding:10px 10px 6px;
  background:linear-gradient(rgba(14,22,17,.0),rgba(14,22,17,.0))}
#bp[data-at="full"]{top:0;background:var(--p0);background-image:linear-gradient(rgba(255,240,205,.055),rgba(255,240,205,.025)),url(art/hide_desk.jpg);background-size:auto,2016px 2016px}
#bp[data-at="set"]{top:var(--bpset,50%);border-top:2px solid rgba(227,198,127,.75);box-shadow:0 -10px 16px -10px rgba(255,200,110,.5);
  background:linear-gradient(rgba(24,34,28,.82),rgba(24,34,28,.96))}
#bp .m{max-width:min(100%,860px);padding:8px 12px;border-radius:10px;background:rgba(8,14,10,.78);box-shadow:inset 0 0 0 1px rgba(176,138,62,.3)}
#bp .m.me{align-self:flex-end;background:rgba(52,30,12,.82);box-shadow:inset 0 0 0 1px rgba(227,198,127,.32)}
#bp .who{display:flex;gap:10px;align-items:baseline;font:600 12px/1.2 var(--lbl);letter-spacing:.08em;color:var(--gilt);text-transform:uppercase}
#bp .who .at{margin-left:auto;font:400 12px var(--lbl);letter-spacing:.04em;color:var(--dim);text-transform:none}
#bp .tx p{margin:6px 0} #bp .tx ul,#bp .tx ol{margin:6px 0;padding-left:22px} #bp .tx h4{margin:8px 0 4px;font:600 15px var(--lbl);color:#f3e4bd}
#bp .tx code{font:14px var(--mono);background:rgba(0,0,0,.35);padding:0 4px;border-radius:4px}
#bp .tx pre{margin:6px 0;padding:8px 10px;border-radius:8px;background:rgba(0,0,0,.45);overflow-x:auto} #bp .tx pre code{background:none;padding:0}
#bp .note{margin-top:4px;font-size:13px} #bp .note.srcs{display:flex;flex-wrap:wrap;gap:4px 10px}
#bp .note.srcs a{color:var(--gilt);text-decoration:none;border-bottom:1px dotted rgba(227,198,127,.5);overflow-wrap:anywhere}
#bp .acts{display:flex;gap:6px;justify-content:flex-end;margin-top:4px}
#bp .acts .md{width:28px;height:28px}
#bp .older{align-self:center}

/* the line: the box full width over its row of BOSUN buttons, the output's at its left, the input's at its right, the anchor last */
#line{flex:none;display:flex;flex-direction:column;gap:6px;padding:8px 12px 4px;border-top:1px solid rgba(201,162,74,.3)}
#line textarea{width:100%;min-height:44px;max-height:240px;padding:11px 14px;border-radius:9px;border:1px solid var(--rim);background:#0e1611;color:var(--txt);
  font:16px/1.4 var(--serif);resize:none;box-shadow:inset 0 2px 5px rgba(0,0,0,.6)}
#line .bb{display:flex;align-items:center;gap:6px}
#line .bb .sp{flex:1}
#line .md.anchor{width:calc(var(--tap) + 14px);height:calc(var(--tap) + 14px)}
#line .md.anchor .ic{background:#3a2405}
#line .md.anchor.lit .ic{background:#2a1806}
body.busy #line .md.anchor .ic{animation:swing 2.4s ease-in-out infinite}
#line .md.anchor .badge-n{position:absolute;top:-4px;right:-4px}
#line .say{font-size:13px;color:var(--dim);min-height:1.2em}

/* a beckon: a question asked in place, gold, never the browser's dialog */
.beckon{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:8px 10px;border-radius:10px;border:1px solid var(--gilt);background:rgba(40,28,8,.85);
  box-shadow:0 0 10px rgba(240,200,110,.25)}
.beckon b{font:600 14px var(--lbl);letter-spacing:.05em;color:var(--gilt);flex:1 1 180px}
#flash{position:fixed;left:50%;bottom:18px;transform:translateX(-50%);max-width:min(92vw,640px);padding:10px 18px;border-radius:10px;
  border:1.5px solid var(--rim);background:#18221c;box-shadow:0 4px 14px rgba(0,0,0,.6);font:15px/1.35 var(--serif);color:var(--txt);z-index:20}
#flash.err{border-color:#c4553f;background:#2a1410}

/* a phone: the side column a row under the bar, the plates their marks alone */
@media (max-width:760px){
  #ship{padding:6px;gap:6px}
  .hood{padding:6px 10px;gap:8px} .hood h1{font-size:20px;letter-spacing:.08em} .badge{width:36px;height:36px} #ver{display:none}
  #bar .side .pl{padding:0 8px} #bar .side .pl .w{display:none}
  #main{grid-template-columns:1fr;grid-template-rows:auto 1fr}
  #col{flex-direction:row;overflow-x:auto;overflow-y:hidden}
  #col .pl{width:auto} #col .pl .w{display:none} #col .foot{display:none}
  #bar .pl .w{max-width:12ch}
  .bhome{grid-template-columns:1fr}
}
@media (prefers-reduced-motion:reduce){body.busy .badge img,body.busy #line .md.anchor .ic{animation:none}}
