/* Portfolio-owned presentation. Original specimen styles stay in the bundle. */
body[data-components-page] { background: var(--paper); color: var(--ink); }
[data-theme="dark"] .exhibit-sheet.exhibition-sheet { max-width:none; border:0; box-shadow:none; }
/* A real h1 before the bundle runs. The app's own heading replaces it the
   moment it mounts, so the page never shows two headings and never has more
   or fewer than one h1 in the accessibility tree. */
.exhibit-title { position:absolute; width:1px; height:1px; margin:-1px; padding:0; overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0; }
.exhibit-fallback { max-width:60ch; margin-inline:auto; padding:48px var(--gutter); font-family:var(--ui); color:var(--ink); }
/* The opening runs to the site container, not to the viewport: the indigo
   field and everything below it start where the masthead's name mark starts.
   This is .wrap's geometry expressed as padding, because the sheet's blocks
   carry their own grounds and cannot be nested in one. */
.exhibition { --ex-ink:var(--exhibit-ink); --ex-quiet:var(--edition-palette-ink-quiet); --ex-line:var(--edition-palette-rule); font-family:var(--ui); color:var(--ink); background:var(--paper); padding:32px max(var(--gutter), calc((100% - var(--container)) / 2 + var(--gutter))) 96px; }
.exhibition > * { max-width:var(--container); margin-inline:auto; }
.exhibition :is(h1,h2,h3):not(.mc *) { font-family:var(--ui); font-weight:550; letter-spacing:-.035em; text-wrap:balance; }
.exhibition button,.exhibition input { font:inherit; }
.exhibition a { text-decoration:none; }
.exhibition :is(a,button,input,summary):focus-visible { outline:2px solid var(--edition-indigo); outline-offset:4px; }
.exhibition .ex-opening :is(a,button,summary):focus-visible { outline-color:var(--edition-white); }
.exhibition .mc :is(a,button,input):focus-visible { outline-color:var(--edition-indigo); }
.ex-opening { display:grid; grid-template-columns: minmax(250px,.8fr) minmax(0,1.2fr); gap:48px; padding:48px; background:var(--edition-indigo); color:var(--edition-white); border-radius:12px; align-items:center; }
.ex-byline { font-size:13px; color:var(--edition-secondary); margin:0 0 28px; }
.ex-opening h1 { font-size:clamp(42px,3.9vw,56px); line-height:1.06; margin:0 0 24px; }
.ex-attribution { font-size:15px; line-height:1.6; margin:0 0 32px; color:var(--edition-secondary); }
.ex-link { display:inline-flex; gap:12px; align-items:center; min-height:44px; font-size:13px; font-weight:500; color:inherit; }
.ex-link:hover { text-decoration:underline; text-underline-offset:5px; }
.ex-archive-jump { display:block; width:fit-content; padding-block:12px; font-size:12px; color:var(--edition-secondary); }
.ex-archive-jump:hover { text-decoration:underline; text-underline-offset:4px; }
.ex-invitation { display:flex; justify-content:space-between; gap:12px; font-size:13px; margin-bottom:16px; }
.ex-invitation > :last-child { color:var(--edition-secondary); font-size:12px; }
.ex-hero-caption { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:8px; font-size:12px; }
.ex-hero-caption > span { color:var(--edition-secondary); }
.ex-stage { min-width:0; display:flex; align-items:center; justify-content:center; color:var(--ex-ink); color-scheme:light; }
.ex-stage .mc { --ink:var(--exhibit-ink); width:100%; font-family:Inter,var(--ui); }
.ex-stage .mc-head { display:none; }
.ex-stage > .mc { border-radius:0; box-shadow:none; background:transparent; padding:0; }
.ex-stage .mc-panel { background:transparent; padding:0; border-radius:0; overflow:visible; }
.ex-stage .mc-footer { padding:20px 0 0; }
.ex-stage .mc .hint { color:var(--ex-quiet); }
/* .row is also a portfolio index class. Its padding/hover fill must not
   turn specimen range labels into editorial rows, especially in dark mode. */
.exhibit-sheet .mc .row { padding:0; border:0; background:transparent; box-shadow:none; }
.ex-stage .mc :is(.btn,.segments button) { min-height:44px; }
.ex-stage .version-track button { min-width:44px; }
.ex-stage .toast .icon-btn { min-width:44px; min-height:44px; }
.ex-opening-foot { display:flex; align-items:baseline; justify-content:space-between; gap:24px; padding:16px 0 0; }
.ex-motion-controls { display:flex; align-items:center; justify-content:end; gap:20px; flex-wrap:wrap; }
.ex-demo-toggle { min-height:44px; padding:8px 0; border:0; background:transparent; color:var(--ink-2); font-size:12px; cursor:pointer; }
.ex-demo-toggle:hover { color:var(--accent); }
.ex-demo-toggle:disabled { opacity:.5; cursor:default; }
.ex-insight { font-size:13px; color:var(--ink-2); max-width:65ch; }
.ex-insight summary { cursor:pointer; min-height:44px; padding-block:12px; width:fit-content; }
.ex-insight summary:hover { color:var(--accent); }
.ex-insight p { line-height:1.7; margin:4px 0 16px; max-width:60ch; }
.ex-motion { display:flex; align-items:center; gap:9px; white-space:nowrap; font-size:12px; color:var(--ink-2); min-height:44px; cursor:pointer; }
.ex-motion input { width:16px; height:16px; accent-color:var(--edition-indigo); }
.ex-selected { padding-top:80px; scroll-margin-top:110px; }
.ex-section-heading { display:flex; justify-content:space-between; align-items:baseline; gap:24px; margin-bottom:48px; border-bottom:1px solid var(--rule); padding-bottom:24px; }
.exhibition h2:not(.mc *) { font-size:clamp(30px,3.3vw,44px); line-height:1.15; margin:0; }
.ex-section-heading > p { font-size:14px; color:var(--ink-2); margin:0; }
.ex-selected-grid { display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); gap:64px 48px; }
.ex-piece { min-width:0; }
.ex-piece-heading { margin-bottom:24px; }
.ex-piece-heading h3 { font-size:clamp(24px,2.3vw,32px); line-height:1.15; margin:0 0 8px; }
.ex-piece-heading p { font-size:14px; line-height:1.5; color:var(--ink-2); margin:0; }
.ex-piece-caption { display:flex; align-items:baseline; justify-content:space-between; gap:12px; padding-top:16px; font-size:12px; color:var(--ink-2); }
.ex-piece-caption a { color:var(--accent); }
.ex-piece .ex-insight { border-top:1px solid var(--rule); margin-top:4px; }
.ex-piece-trim { grid-column:span 8; }
.ex-piece-dial { grid-column:span 4; }
.ex-piece-trim .ex-stage { min-height:552px; padding:36px; background:var(--edition-palette-paper-tint); }
.ex-piece-trim .waveform { height:126px; }
.ex-piece-dial .ex-stage { min-height:552px; background:var(--exhibition-mint); padding:28px; }
.ex-piece-dial .dial-wrap { max-width:260px; margin-inline:auto; }
.ex-piece-history { grid-column:span 12; display:grid; grid-template-columns: minmax(220px,.6fr) minmax(0,1.4fr); column-gap:64px; border-block:1px solid var(--rule); padding-block:48px; }
.ex-piece-history .ex-piece-heading { grid-column:1; grid-row:1; align-self:center; }
.ex-piece-history .ex-stage { grid-column:2; grid-row:1 / 4; padding:32px; background:var(--exhibition-warm); min-height:610px; }
.ex-piece-history .ex-piece-caption { grid-column:1; flex-direction:column; justify-content:start; align-self:end; }
.ex-piece-history .ex-insight { grid-column:1; border:0; align-self:start; }
.ex-piece-history .version-paper { min-height:216px; }
.ex-piece-palette { grid-column:span 12; }
.ex-piece-palette .ex-stage { background:var(--edition-palette-paper-tint); padding:36px 48px; min-height:550px; }
.ex-piece-palette .palette-strip { height:210px; margin-block:28px; }
.ex-piece-palette .mc-panel { display:grid; grid-template-columns:1fr 1fr; column-gap:48px; }
.ex-piece-palette .mc-panel > :is(.segmented,.palette-strip) { grid-column:1 / -1; }
.ex-piece-palette .mc-panel > :first-child { max-width:460px; }
.ex-piece-palette .mc-panel > :last-child { grid-column:1 / -1; }
.ex-piece-toggle { grid-column:span 5; }
.ex-piece-notifications { grid-column:span 7; }
.ex-piece-toggle .ex-stage { min-height:380px; padding:32px; border-block:1px solid var(--rule); background:var(--exhibition-mint); }
.ex-focus.mc { display:flex; align-items:center; gap:28px; justify-content:space-between; }
.ex-focus strong { font-size:16px; font-weight:500; }
.ex-focus p { font-size:12px; color:var(--ex-quiet); margin:8px 0 0; }
.ex-piece-notifications .ex-stage { min-height:460px; padding:24px 36px; background:var(--edition-palette-paper-tint); }
.ex-piece-notifications .mc { max-width:520px; }
.ex-wait { color:var(--ex-quiet); font-size:13px; }
.ex-archive { margin-top:96px; padding-top:48px; border-top:1px solid var(--rule); scroll-margin-top:110px; }
.ex-archive-heading { display:flex; justify-content:space-between; gap:32px; align-items:end; margin-bottom:28px; }
.ex-archive-heading p { margin:12px 0 0; color:var(--ink-2); font-size:14px; }
.ex-archive .site-search { border-radius:6px; min-height:48px; margin:0; }
.ex-archive .site-search input { font-size:14px; }
.ex-archive-toolbar { display:flex; align-items:center; justify-content:space-between; gap:16px; }
.ex-archive .site-index-filters button { color:var(--ink-2); border-radius:4px; min-height:44px; font-size:12px; }
.ex-archive .site-index-filters button[aria-pressed="true"] { background:var(--paper-3); color:var(--ink); }
.ex-archive .site-index-filters button:hover { background:var(--paper-2); color:var(--ink); }
.ex-archive-status { display:flex; justify-content:space-between; gap:16px; margin:20px 0 24px; font-size:12px; color:var(--ink-2); }
.ex-archive.site-showcase .showcase-stage { height:290px; border-radius:6px; background:var(--exhibition-control); }
.ex-archive.site-showcase .showcase-hit { border-radius:6px; }
.ex-archive.site-showcase .showcase-caption h3 { color:var(--ink); font-family:var(--ui); }
.ex-archive.site-showcase .showcase-caption :is(p,span) { color:var(--ink-2); font-size:11px; }
.ex-archive.site-showcase .showcase-pause { border-radius:4px; min-height:44px; background:var(--paper-3); color:var(--ink); }
.ex-archive.site-showcase .showcase-grid { gap:36px 24px; }
.ex-archive .site-empty { background:var(--paper-2); color:var(--ink); }
.ex-archive .site-empty button { border:1px solid var(--rule); background:var(--paper); color:var(--ink); padding:12px 16px; border-radius:4px; cursor:pointer; }
/* The single-component sheet is a light specimen surface, including its
   navigation and notes. */
.playground-sheet { background:var(--exhibit-paper); color:var(--exhibit-ink); --ink:var(--exhibit-ink); --ink-2:var(--edition-palette-ink-secondary); --graphite:var(--edition-palette-ink-quiet); }
.playground-sheet :is(.sidebar,.gallery-main) { color:var(--exhibit-ink); }
/* Its outer edges meet the site container, so the rail starts where the
   masthead's name mark starts instead of running full bleed past it. */
@media (min-width:761px) {
  .exhibit-sheet.playground-sheet { max-width:calc(min(100%, var(--container)) - 2 * var(--gutter)); margin-inline:auto; }
}
/* The rail is sticky and one viewport tall, so its own tint used to stop
   partway down the page and leave a tall empty column above the footer. The
   ground moves to the grid and the specimen column paints its own, so the
   rail reads full height at any viewport, and the app is no longer forced to
   100vh when its content is shorter than that. */
.playground-sheet .gallery { min-height:0; background:var(--exhibit-shelf); }
.playground-sheet .gallery-main { background:var(--exhibit-paper); border-left:1px solid var(--exhibit-rule); }
.playground-sheet .sidebar { top:var(--nav-h,76px); height:calc(100vh - var(--nav-h,76px)); background:transparent; border-right:0; }
/* The reviewer's tally left with it; the remaining mark must not take its
   place at the right-hand end of the row. */
.playground-sheet .sidebar-bottom > .small-dot { margin-left:0; }
.playground-sheet button { cursor:pointer; }
.playground-sheet :is(button,input,select,summary,a):focus-visible { outline:2px solid var(--edition-indigo); outline-offset:3px; }
@media (max-width:760px) {
  .playground-sheet .gallery { background:transparent; }
  .playground-sheet .gallery-main { border-left:0; }
}
html[data-reduced="true"] .exhibition *, html[data-reduced="true"] .playground-sheet * { scroll-behavior:auto !important; }
@media (prefers-reduced-motion:reduce) { .exhibition * { scroll-behavior:auto !important; } }
@media (max-width:1100px) {
  .ex-opening { padding:32px; gap:28px; grid-template-columns:.85fr 1.15fr; }
  .ex-opening h1 { font-size:clamp(38px,4.8vw,54px); }
  .ex-selected-grid { gap:48px 28px; }
  .ex-piece-trim { grid-column:span 7; }
  .ex-piece-dial { grid-column:span 5; }
  .ex-piece-history { column-gap:32px; }
  .ex-piece-toggle { grid-column:span 5; }
  .ex-piece-notifications { grid-column:span 7; }
  .ex-focus.mc { flex-direction:column; text-align:center; }
}
@media (max-width:800px) {
  .exhibition { padding-top:20px; }
  .ex-opening { grid-template-columns:1fr; padding:28px; gap:24px; }
  .ex-opening-copy { position:relative; }
  .ex-opening h1 { font-size:48px; }
  .ex-byline { margin-bottom:16px; }
  .ex-attribution { margin-bottom:8px; }
  .ex-opening-copy > .ex-link,.ex-archive-jump { display:inline-flex; margin-right:24px; }
  .ex-opening-work { width:100%; max-width:560px; justify-self:center; }
  .ex-selected-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .ex-piece-trim,.ex-piece-dial,.ex-piece-toggle,.ex-piece-notifications { grid-column:span 1; }
  .ex-piece-trim .ex-stage,.ex-piece-dial .ex-stage { padding:22px; min-height:552px; }
  .ex-piece-history,.ex-piece-palette { grid-column:1 / -1; }
  .ex-piece-history { grid-template-columns:1fr; }
  .ex-piece-history :is(.ex-piece-heading,.ex-stage,.ex-piece-caption,.ex-insight) { grid-column:1; grid-row:auto; }
  .ex-piece-history .ex-piece-caption { flex-direction:row; align-items:center; justify-content:space-between; }
  .ex-piece-notifications .ex-stage { padding:24px 18px; }
  .ex-archive-heading { align-items:start; flex-direction:column; gap:20px; }
  .ex-archive .site-search { width:100%; }
  .ex-section-heading { align-items:start; flex-direction:column; gap:12px; }
}
@media (max-width:600px) {
  .exhibition { padding:16px 20px 64px; }
  .ex-opening { padding:24px 16px 12px; margin-inline:-4px; gap:18px; }
  .ex-opening h1 { font-size:38px; margin-bottom:12px; }
  .ex-byline { font-size:11px; margin-bottom:12px; }
  .ex-attribution { font-size:12px; margin:0; }
  .ex-attribution br { display:none; }
  .ex-attribution br::after { content:' '; }
  .ex-opening-copy > .ex-link { font-size:12px; margin-right:18px; }
  .ex-archive-jump { font-size:12px; margin-right:0; }
  .ex-invitation { font-size:12px; margin-bottom:10px; }
  .ex-invitation > :last-child { display:none; }
  .ex-hero-caption { font-size:11px; }
  .ex-hero-caption .ex-link { font-size:12px; }
  .ex-opening-foot { gap:12px; flex-wrap:wrap; padding-top:8px; }
  .ex-opening-foot .ex-insight { flex-basis:100%; }
  .ex-motion { margin-top:-8px; }
  .ex-selected { padding-top:48px; }
  .ex-section-heading { margin-bottom:32px; }
  .ex-selected-grid { display:block; }
  .ex-piece { margin-bottom:48px; }
  .ex-piece-heading h3 { font-size:26px; }
  .ex-piece-heading { margin-bottom:20px; }
  .ex-piece-trim .ex-stage { min-height:560px; padding:28px 20px; }
  .ex-piece-trim .waveform { gap:2px; }
  .ex-piece-dial .ex-stage { min-height:530px; padding:28px 20px; }
  .ex-stage .dual,.ex-stage .dual input { height:44px; }
  .ex-stage .dual-track { top:19px; }
  .ex-stage .dual input::-webkit-slider-thumb { width:44px; height:44px; border:10px solid transparent; background-clip:padding-box; box-shadow:none; }
  .ex-stage .dual input::-moz-range-thumb { width:24px; height:24px; border:10px solid transparent; background-clip:padding-box; box-shadow:none; }
  .ex-piece-dial .dial-wrap { max-width:240px; }
  .ex-piece-history { display:block; padding-block:32px; }
  .ex-piece-history .ex-stage { padding:24px 18px; min-height:588px; }
  .ex-piece-history .version-compare { grid-template-columns:1fr; }
  .ex-piece-history .version-paper { min-height:190px; }
  .ex-piece-palette .ex-stage { padding:24px 18px; }
  .ex-piece-palette .mc-panel { display:block; }
  .ex-piece-palette .palette-strip { height:180px; margin-block:24px; }
  .ex-piece-toggle .ex-stage { min-height:220px; padding:28px; }
  .ex-focus.mc { flex-direction:row; text-align:left; gap:16px; }
  .ex-piece-notifications .ex-stage { min-height:460px; padding:24px 18px; }
  .ex-piece-caption { align-items:center; font-size:11px; }
  .ex-piece-caption .ex-link { font-size:12px; }
  .ex-archive { margin-top:16px; padding-top:40px; }
  .ex-archive-toolbar { flex-wrap:wrap; }
  .ex-archive .site-index-filters { width:100%; justify-content:space-between; }
  .ex-archive .site-index-filters button { font-size:11px; gap:5px; padding-inline:8px; }
  .ex-archive-status { flex-direction:column; gap:8px; }
  /* Two-up on a phone: 38 tiles in one column ran the page past 20,000px. */
  .ex-archive.site-showcase .showcase-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px 12px; }
  .ex-archive.site-showcase .showcase-stage { height:150px; }
  .ex-archive.site-showcase .showcase-caption h3 { font-size:13px; }
  .ex-archive.site-showcase .showcase-caption p { font-size:11px; }
}

/* Relay is a playable product fragment, backed by the case study's model. */
.ex-relay { width:100%; padding:24px; border-radius:8px; background:var(--exhibit-paper); color:var(--exhibit-ink); font-family:var(--ui); }
.ex-relay-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; font-size:11px; color:var(--ex-quiet); }
.ex-relay-brand { display:flex; align-items:center; gap:7px; font-size:16px; font-weight:550; color:var(--exhibit-ink); }
.ex-relay-brand svg { color:var(--edition-indigo); margin-left:-4px; }
.exhibition .ex-relay h2 { margin:24px 0 28px; font-size:28px; line-height:1.15; }
.ex-relay-source { padding:0 16px; }
.ex-relay-file { display:flex; align-items:center; gap:12px; min-height:70px; padding:12px; border:1px solid var(--ex-line); border-radius:5px; background:var(--exhibit-paper); text-align:left; }
.ex-relay-file > span:nth-child(2) { flex:1; min-width:0; }
.ex-relay-file strong { display:block; font-size:13px; font-weight:500; line-height:1.4; overflow-wrap:anywhere; }
.ex-relay-file small { display:block; font-size:11px; line-height:1.4; margin-top:4px; color:var(--ex-quiet); }
.ex-relay-file-icon { color:var(--edition-indigo); display:flex; flex-shrink:0; }
.ex-relay-file-badge { display:flex; color:var(--ex-quiet); }
.ex-relay-thread { display:flex; height:64px; align-items:center; gap:14px; padding-left:44px; font-size:11px; color:var(--ex-quiet); }
.ex-relay-wire { position:relative; display:block; width:1px; height:100%; background:var(--ex-line); }
.ex-relay-wire i { position:absolute; inset:0; background:var(--edition-indigo); transform:scaleY(0); transform-origin:top; transition:transform 550ms cubic-bezier(.22,1,.36,1); }
.ex-relay[data-connected="true"] .ex-relay-wire i { transform:scaleY(1); }
.ex-relay-project { padding:0 16px 16px; border:1px solid var(--ex-line); border-radius:6px; background:var(--exhibition-control); }
.ex-relay-project-heading { display:flex; align-items:center; justify-content:space-between; gap:8px; height:48px; font-size:11px; }
.ex-relay-project-heading > span:first-child { display:flex; align-items:center; gap:8px; font-weight:500; }
.ex-relay-project-heading > span:last-child { color:var(--ex-quiet); font-size:10px; }
.ex-relay-slot { position:relative; height:70px; }
.ex-relay-empty { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; border:1px dashed var(--ex-line); border-radius:5px; margin:0; font-size:12px; color:var(--ex-quiet); transition:opacity 180ms ease-out; }
.ex-relay-reference { position:relative; opacity:0; transform:translateY(-120px); pointer-events:none; transition:transform 550ms cubic-bezier(.22,1,.36,1),opacity 220ms ease-out; }
.ex-relay[data-connected="true"] .ex-relay-reference { opacity:1; transform:translateY(0); }
.ex-relay[data-connected="true"] .ex-relay-empty { opacity:0; }
.ex-relay-reference .ex-relay-file-badge { color:var(--edition-indigo); }
.ex-relay-actions { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-top:24px; }
.ex-relay-actions p { font-size:11px; line-height:1.5; margin:0; max-width:19ch; min-height:33px; color:var(--ex-quiet); }
.ex-relay-actions button { display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:44px; min-width:156px; padding:10px 14px; border:0; border-radius:5px; background:var(--edition-indigo); color:var(--edition-white); font-size:12px; cursor:pointer; transition:background-color 160ms ease-out,transform 160ms ease-out; }
.ex-relay-actions button:hover { background:var(--exhibit-accent-hover); }
.ex-relay-actions button:active { transform:scale(.97); }
.exhibition .ex-relay button:focus-visible { outline-color:var(--edition-indigo); }
html[data-reduced="true"] .ex-relay * { transition:none; }
@media (prefers-reduced-motion:reduce) { .ex-relay * { transition:none; } }
@media (min-width:801px) and (max-width:960px) { .ex-opening { grid-template-columns:1fr; } .ex-opening h1 { font-size:48px; } .ex-opening-work { max-width:600px; width:100%; justify-self:center; } }
@media (max-width:600px) {
  .ex-relay { padding:16px; }
  .exhibition .ex-relay h2 { margin:18px 0 20px; font-size:23px; }
  .ex-relay-source { padding-inline:8px; }
  .ex-relay-project { padding:0 8px 8px; }
  .ex-relay-file { gap:8px; padding:10px 8px; }
  .ex-relay-file strong { font-size:12px; }
  .ex-relay-file small { font-size:10px; }
  .ex-relay-file-badge { display:none; }
  .ex-relay-thread { height:40px; padding-left:28px; }
  .ex-relay-project-heading { height:40px; }
  .ex-relay-project-heading > span:last-child { display:none; }
  .ex-relay-reference { transform:translateY(-110px); }
  .ex-relay-actions { margin-top:16px; gap:10px; }
  .ex-relay-actions button { min-width:140px; padding-inline:10px; font-size:11px; }
  .ex-relay-actions p { font-size:10px; max-width:16ch; }
  .ex-motion-controls { width:100%; justify-content:space-between; gap:8px; }
}

.ex-relay-mechanism { position:relative; }
.ex-relay-drag { display:block; width:100%; padding:0; border:0; background:transparent; color:inherit; text-align:left; cursor:grab; touch-action:none; }
.ex-relay-drag:hover .ex-relay-file { border-color:var(--edition-indigo); }
.ex-relay-drag:active { cursor:grabbing; }
.ex-relay-drag-ghost { position:absolute; z-index:2; top:16px; left:32px; display:flex; align-items:center; gap:10px; padding:12px 16px; background:var(--edition-indigo); color:var(--edition-white); border-radius:5px; font-size:12px; pointer-events:none; }
.ex-relay-mechanism[data-dragging="true"] .ex-relay-project { border-color:var(--edition-indigo); }
