
/*
JetBrains Mono variable WOFF2 subsets from Google Fonts service revision v24.
These fixed bytes are shared by the viewer and its SVG/raster exports.
No local() source: an installed copy must not override the bundled font.
Uncovered characters (including CJK) still use the system fallback stack.
Upstream: https://github.com/JetBrains/JetBrainsMono

cyrillic-ext    1664 bytes  sha256 9343de2ca5d9549f792e7962375af8efb0f320c7643bfd36c884b5a30e5c396f
cyrillic        8892 bytes  sha256 4995a9a43ac659ec32fcd8b463755cd6a07b31a6e6b3894a6a153b661cf490e2
greek           6800 bytes  sha256 49c3da6c9a2b279b0f1f860f5cfb1f5dc38d88a5c7be9c9b1837bbc4e3db6111
vietnamese      5872 bytes  sha256 d44eb1936043a56038eb02dd70b243f379bef65783f94ec12f277550720411f1
latin-ext      11596 bytes  sha256 9c38cb2d0d2d93c1ee6e21fa78db76f13ea7e15e15cc64214c7ca89b6aaa35c4
latin          31340 bytes  sha256 2c32b9b3ee358c119e210f6f5195f9bd34894d78a785ff2e95d60e718e400af4

Copyright 2020 The JetBrains Mono Project Authors (https://github.com/JetBrains/JetBrainsMono)

This Font Software is licensed under the SIL Open Font License, Version 1.1.
This license is copied below, and is also available with a FAQ at:
https://openfontlicense.org


-----------------------------------------------------------
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
-----------------------------------------------------------

PREAMBLE
The goals of the Open Font License (OFL) are to stimulate worldwide
development of collaborative font projects, to support the font creation
efforts of academic and linguistic communities, and to provide a free and
open framework in which fonts may be shared and improved in partnership
with others.

The OFL allows the licensed fonts to be used, studied, modified and
redistributed freely as long as they are not sold by themselves. The
fonts, including any derivative works, can be bundled, embedded,
redistributed and/or sold with any software provided that any reserved
names are not used by derivative works. The fonts and derivatives,
however, cannot be released under any other type of license. The
requirement for fonts to remain under this license does not apply
to any document created using the fonts or their derivatives.

DEFINITIONS
"Font Software" refers to the set of files released by the Copyright
Holder(s) under this license and clearly marked as such. This may
include source files, build scripts and documentation.

"Reserved Font Name" refers to any names specified as such after the
copyright statement(s).

"Original Version" refers to the collection of Font Software components as
distributed by the Copyright Holder(s).

"Modified Version" refers to any derivative made by adding to, deleting,
or substituting -- in part or in whole -- any of the components of the
Original Version, by changing formats or by porting the Font Software to a
new environment.

"Author" refers to any designer, engineer, programmer, technical
writer or other person who contributed to the Font Software.

PERMISSION & CONDITIONS
Permission is hereby granted, free of charge, to any person obtaining
a copy of the Font Software, to use, study, copy, merge, embed, modify,
redistribute, and sell modified and unmodified copies of the Font
Software, subject to the following conditions:

1) Neither the Font Software nor any of its individual components,
in Original or Modified Versions, may be sold by itself.

2) Original or Modified Versions of the Font Software may be bundled,
redistributed and/or sold with any software, provided that each copy
contains the above copyright notice and this license. These can be
included either as stand-alone text files, human-readable headers or
in the appropriate machine-readable metadata fields within text or
binary files as long as those fields can be easily viewed by the user.

3) No Modified Version of the Font Software may use the Reserved Font
Name(s) unless explicit written permission is granted by the corresponding
Copyright Holder. This restriction only applies to the primary font name as
presented to the users.

4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
Software shall not be used to promote, endorse or advertise any
Modified Version, except to acknowledge the contribution(s) of the
Copyright Holder(s) and the Author(s) or with their explicit written
permission.

5) The Font Software, modified or unmodified, in part or in whole,
must be distributed entirely under this license, and must not be
distributed under any other license. The requirement for fonts to
remain under this license does not apply to any document created
using the Font Software.

TERMINATION
This license becomes null and void if any of the above conditions are
not met.

DISCLAIMER
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
OTHER DEALINGS IN THE FONT SOFTWARE.
*/
    /* cyrillic-ext */
    @font-face { font-family: 'JetBrains Mono'; font-style: normal; font-weight: 400 800; font-display: swap;
      src: url(data:font/woff2;base64,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) format('woff2');
      unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; }
    /* cyrillic */
    @font-face { font-family: 'JetBrains Mono'; font-style: normal; font-weight: 400 800; font-display: swap;
      src: url(data:font/woff2;base64,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) format('woff2');
      unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
    /* greek */
    @font-face { font-family: 'JetBrains Mono'; font-style: normal; font-weight: 400 800; font-display: swap;
      src: url(data:font/woff2;base64,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) format('woff2');
      unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF; }
    /* vietnamese */
    @font-face { font-family: 'JetBrains Mono'; font-style: normal; font-weight: 400 800; font-display: swap;
      src: url(data:font/woff2;base64,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) format('woff2');
      unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; }
    /* latin-ext */
    @font-face { font-family: 'JetBrains Mono'; font-style: normal; font-weight: 400 800; font-display: swap;
      src: url(data:font/woff2;base64,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) format('woff2');
      unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
    /* latin */
    @font-face { font-family: 'JetBrains Mono'; font-style: normal; font-weight: 400 800; font-display: swap;
      src: url(data:font/woff2;base64,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) format('woff2');
      unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
  


    /* ==========================================================
       THEME VARIABLES — switch by toggling [data-theme] on <html>
       ========================================================== */
    :root,
    [data-theme="dark"] {
      --bg: #020617;
      --grid: #1e293b;
      --canvas-dot: rgba(148, 163, 184, 0.16);
      --text: #ffffff;
      --text-muted: #94a3b8;
      --text-dim: #475569;
      /* UI chrome and menu hints need more contrast than SVG .t-dim accents */
      --text-faint: #7d8da1;

      --panel: rgba(15, 23, 42, 0.5);
      --panel-border: #1e293b;
      --lane-fill: rgba(15, 23, 42, 0.22);
      --lane-stroke: #334155;

      --arrow: #64748b;
      --arrow-emphasis: #34d399;

      /* Opaque mask color used behind semi-transparent component fills
         so the arrows drawn underneath are properly hidden. */
      --mask: #0f172a;

      --frontend-fill:    rgba(8, 51, 68, 0.4);
      --frontend-stroke:  #22d3ee;
      --backend-fill:     rgba(6, 78, 59, 0.4);
      --backend-stroke:   #34d399;
      --database-fill:    rgba(76, 29, 149, 0.4);
      --database-stroke:  #a78bfa;
      --cloud-fill:       rgba(120, 53, 15, 0.3);
      --cloud-stroke:     #fbbf24;
      --security-fill:    rgba(136, 19, 55, 0.4);
      --security-stroke:  #fb7185;
      --messagebus-fill:  rgba(251, 146, 60, 0.3);
      --messagebus-stroke:#fb923c;
      --external-fill:    rgba(30, 41, 59, 0.5);
      --external-stroke:  #94a3b8;

      --toolbar-bg:       rgba(15, 23, 42, 0.8);
      --toolbar-border:   #334155;
      --toolbar-text:     #e2e8f0;
      --toolbar-hover:    rgba(15, 23, 42, 0.95);
      --toolbar-menu-bg:  #0f172a;
    }

    [data-theme="light"] {
      --bg: #f4f5f7;
      --grid: #e9edf2;
      --canvas-dot: #d9dee5;
      --text: #111827;
      --text-muted: #5b6474;
      --text-dim: #9aa3b2;
      --text-faint: #6b7280;

      --panel: #ffffff;
      --panel-border: #e5e7eb;
      --lane-fill: rgba(248, 250, 252, 0.65);
      --lane-stroke: #cbd5e1;

      --arrow: #94a3b8;
      --arrow-emphasis: #059669;

      --mask: #ffffff;

      --frontend-fill: rgba(34, 211, 238, 0.15);
      --frontend-stroke: #0891b2;
      --backend-fill: rgba(52, 211, 153, 0.18);
      --backend-stroke: #059669;
      --database-fill: rgba(167, 139, 250, 0.2);
      --database-stroke: #7c3aed;
      --cloud-fill: rgba(251, 191, 36, 0.18);
      --cloud-stroke: #d97706;
      --security-fill: rgba(251, 113, 133, 0.15);
      --security-stroke: #e11d48;
      --messagebus-fill: rgba(251, 146, 60, 0.15);
      --messagebus-stroke: #ea580c;
      --external-fill: rgba(148, 163, 184, 0.18);
      --external-stroke: #64748b;

      --toolbar-bg:       rgba(255, 255, 255, 0.92);
      --toolbar-border:   #cbd5e1;
      --toolbar-text:     #334155;
      --toolbar-hover:    #ffffff;
      --toolbar-menu-bg:  #ffffff;
    }

    /* ==========================================================
       SIGNAL FLOW — an opt-in, motion-forward visual preset.
       The variables also target a standalone exported SVG, whose
       root carries data-preset and data-theme directly.
       ========================================================== */
    [data-preset="signal-flow"][data-theme="dark"] {
      --bg: #030711;
      --grid: #15233a;
      --panel: rgba(6, 14, 28, 0.78);
      --panel-border: #1d3350;
      --lane-fill: rgba(9, 22, 40, 0.5);
      --lane-stroke: #2c4564;
      --text: #f5fbff;
      --text-muted: #9eb0c7;
      --text-dim: #52667f;
      --text-faint: #7890ad;
      --mask: #07101e;
      --frontend-fill: rgba(6, 182, 212, 0.14);
      --frontend-stroke: #67e8f9;
      --backend-fill: rgba(16, 185, 129, 0.14);
      --backend-stroke: #5eead4;
      --database-fill: rgba(139, 92, 246, 0.16);
      --database-stroke: #c4b5fd;
      --cloud-fill: rgba(245, 158, 11, 0.13);
      --cloud-stroke: #fcd34d;
      --security-fill: rgba(244, 63, 94, 0.13);
      --security-stroke: #fda4af;
      --messagebus-fill: rgba(249, 115, 22, 0.13);
      --messagebus-stroke: #fdba74;
      --external-fill: rgba(71, 85, 105, 0.24);
      --external-stroke: #a5b4c7;
      --arrow: #7890ad;
      --arrow-emphasis: #2dd4bf;
      --toolbar-bg: rgba(7, 16, 30, 0.86);
      --toolbar-border: #29415f;
      --toolbar-menu-bg: #07101e;
    }

    [data-preset="signal-flow"][data-theme="light"] {
      --bg: #f4f9fc;
      --grid: #d4e5ee;
      --panel: rgba(255, 255, 255, 0.82);
      --panel-border: #bfd5e2;
      --lane-fill: rgba(232, 243, 248, 0.62);
      --lane-stroke: #a9c5d5;
      --text: #102638;
      --text-muted: #587287;
      --text-dim: #8aa2b4;
      --text-faint: #668397;
      --mask: #ffffff;
      --frontend-fill: rgba(6, 182, 212, 0.09);
      --frontend-stroke: #0789a1;
      --backend-fill: rgba(5, 150, 105, 0.09);
      --backend-stroke: #087f69;
      --database-fill: rgba(124, 58, 237, 0.09);
      --database-stroke: #7254c7;
      --cloud-fill: rgba(217, 119, 6, 0.08);
      --cloud-stroke: #b9670b;
      --security-fill: rgba(225, 29, 72, 0.08);
      --security-stroke: #c53a59;
      --messagebus-fill: rgba(234, 88, 12, 0.08);
      --messagebus-stroke: #c65f27;
      --external-fill: rgba(100, 116, 139, 0.1);
      --external-stroke: #607a8c;
      --arrow: #7b97aa;
      --arrow-emphasis: #0d9488;
    }

    /* ==========================================================
       BLUEPRINT — a review-first drafting preset for deployment,
       infrastructure, and technical design documentation. It keeps
       the same semantic palette and geometry while trading glow for
       precise grid contrast, squared materials, and drafting marks.
       ========================================================== */
    [data-preset="blueprint"][data-theme="dark"] {
      --bg: #06131f;
      --grid: #17425a;
      --panel: rgba(7, 27, 43, 0.9);
      --panel-border: #27627f;
      --lane-fill: rgba(10, 43, 66, 0.36);
      --lane-stroke: #34799a;
      --text: #e3f6ff;
      --text-muted: #91b8ca;
      --text-dim: #557e92;
      --text-faint: #739caf;
      --mask: #0a2031;
      --frontend-fill: rgba(26, 157, 193, 0.14);
      --frontend-stroke: #66d9ef;
      --backend-fill: rgba(31, 155, 124, 0.13);
      --backend-stroke: #69dfbd;
      --database-fill: rgba(120, 105, 196, 0.14);
      --database-stroke: #b4a8ff;
      --cloud-fill: rgba(197, 145, 43, 0.13);
      --cloud-stroke: #ffd166;
      --security-fill: rgba(199, 76, 104, 0.13);
      --security-stroke: #ff8da1;
      --messagebus-fill: rgba(207, 112, 49, 0.13);
      --messagebus-stroke: #ffad66;
      --external-fill: rgba(84, 119, 139, 0.18);
      --external-stroke: #a7cad9;
      --arrow: #78a3b7;
      --arrow-emphasis: #64dfc1;
      --toolbar-bg: rgba(7, 28, 45, 0.92);
      --toolbar-border: #34799a;
      --toolbar-text: #d8f3ff;
      --toolbar-hover: rgba(18, 58, 83, 0.95);
      --toolbar-menu-bg: #0a2031;
    }

    [data-preset="blueprint"][data-theme="light"] {
      --bg: #edf7fa;
      --grid: #b5d5e1;
      --panel: rgba(249, 253, 255, 0.94);
      --panel-border: #78aabd;
      --lane-fill: rgba(210, 232, 240, 0.42);
      --lane-stroke: #83b2c4;
      --text: #123344;
      --text-muted: #4e7486;
      --text-dim: #86a6b4;
      --text-faint: #668c9d;
      --mask: #f9fdff;
      --frontend-fill: rgba(8, 145, 178, 0.08);
      --frontend-stroke: #087f9c;
      --backend-fill: rgba(5, 128, 101, 0.08);
      --backend-stroke: #08755f;
      --database-fill: rgba(100, 75, 180, 0.08);
      --database-stroke: #6757a8;
      --cloud-fill: rgba(181, 120, 15, 0.08);
      --cloud-stroke: #a86609;
      --security-fill: rgba(190, 48, 80, 0.07);
      --security-stroke: #b32f50;
      --messagebus-fill: rgba(196, 81, 22, 0.07);
      --messagebus-stroke: #b65120;
      --external-fill: rgba(79, 112, 128, 0.08);
      --external-stroke: #506f7e;
      --arrow: #6d93a5;
      --arrow-emphasis: #087f69;
      --toolbar-bg: rgba(247, 252, 254, 0.94);
      --toolbar-border: #8ab5c5;
      --toolbar-text: #294f61;
      --toolbar-hover: #ffffff;
      --toolbar-menu-bg: #f9fdff;
    }

    /* ==========================================================
       EDITORIAL — a warm, publication-minded preset for design
       reviews, launch notes, and documentation. The diagram keeps
       the same semantic palette and exact geometry, but trades
       software chrome for paper, ink, ruled structure, and one
       restrained vermilion accent.
       ========================================================== */
    [data-preset="editorial"][data-theme="dark"] {
      --bg: #181611;
      --grid: #39342a;
      --panel: rgba(35, 31, 24, 0.96);
      --panel-border: #625a4a;
      --lane-fill: rgba(52, 46, 35, 0.46);
      --lane-stroke: #726957;
      --text: #f4eddf;
      --text-muted: #b9ae9b;
      --text-dim: #776e60;
      --text-faint: #9d917e;
      --mask: #231f18;
      --frontend-fill: rgba(43, 133, 142, 0.16);
      --frontend-stroke: #7fc6c7;
      --backend-fill: rgba(63, 132, 92, 0.16);
      --backend-stroke: #8fc29e;
      --database-fill: rgba(117, 91, 141, 0.17);
      --database-stroke: #c0a4d0;
      --cloud-fill: rgba(170, 119, 49, 0.16);
      --cloud-stroke: #d8ad68;
      --security-fill: rgba(157, 69, 65, 0.17);
      --security-stroke: #df9085;
      --messagebus-fill: rgba(174, 79, 42, 0.16);
      --messagebus-stroke: #df946f;
      --external-fill: rgba(126, 115, 96, 0.18);
      --external-stroke: #b8ad99;
      --arrow: #948978;
      --arrow-emphasis: #dd6b3d;
      --toolbar-bg: rgba(35, 31, 24, 0.92);
      --toolbar-border: #625a4a;
      --toolbar-text: #eee5d5;
      --toolbar-hover: #302a20;
      --toolbar-menu-bg: #231f18;
    }

    [data-preset="editorial"][data-theme="light"] {
      --bg: #f2eee5;
      --grid: #d8d0c2;
      --panel: rgba(251, 248, 241, 0.97);
      --panel-border: #c4b9a6;
      --lane-fill: rgba(229, 221, 207, 0.42);
      --lane-stroke: #b8aa94;
      --text: #242018;
      --text-muted: #6f6658;
      --text-dim: #a09788;
      --text-faint: #817767;
      --mask: #fbf8f1;
      --frontend-fill: rgba(31, 117, 126, 0.09);
      --frontend-stroke: #287e84;
      --backend-fill: rgba(42, 119, 75, 0.09);
      --backend-stroke: #397b53;
      --database-fill: rgba(105, 75, 130, 0.09);
      --database-stroke: #765d86;
      --cloud-fill: rgba(157, 103, 31, 0.1);
      --cloud-stroke: #9a671f;
      --security-fill: rgba(153, 58, 52, 0.09);
      --security-stroke: #9e463f;
      --messagebus-fill: rgba(182, 70, 27, 0.09);
      --messagebus-stroke: #ad4b25;
      --external-fill: rgba(101, 91, 75, 0.09);
      --external-stroke: #746b5e;
      --arrow: #8a806f;
      --arrow-emphasis: #bb4c23;
      --toolbar-bg: rgba(251, 248, 241, 0.94);
      --toolbar-border: #c4b9a6;
      --toolbar-text: #40392f;
      --toolbar-hover: #fffdf8;
      --toolbar-menu-bg: #fbf8f1;
    }

    * { margin: 0; padding: 0; box-sizing: border-box; }

    body {
      --archify-page-top: 2rem;
      font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei', 'Noto Sans CJK SC', 'Noto Sans', Roboto, 'Helvetica Neue', Arial, sans-serif;
      -webkit-font-smoothing: antialiased;
      background: var(--bg);
      min-height: 100vh;
      padding: var(--archify-page-top) 2rem 2rem;
      color: var(--text);
      /* Theme surfaces change together; animating the page background leaves it
         visibly out of sync with the SVG and panel for the first 200ms. */
    }

    html[data-preset="signal-flow"] body {
      background-image:
        radial-gradient(circle at 18% -8%, rgba(34, 211, 238, 0.14), transparent 34rem),
        radial-gradient(circle at 92% 18%, rgba(139, 92, 246, 0.12), transparent 30rem);
      background-attachment: fixed;
    }
    html[data-preset="signal-flow"][data-theme="light"] body {
      background-image:
        radial-gradient(circle at 18% -8%, rgba(6, 182, 212, 0.12), transparent 34rem),
        radial-gradient(circle at 92% 18%, rgba(139, 92, 246, 0.08), transparent 30rem);
    }
    html[data-preset="blueprint"] body {
      background-image:
        linear-gradient(var(--grid) 1px, transparent 1px),
        linear-gradient(90deg, var(--grid) 1px, transparent 1px);
      background-size: 32px 32px;
      background-position: -1px -1px;
      background-attachment: fixed;
    }
    html[data-preset="editorial"] body {
      background-image:
        linear-gradient(90deg, transparent 0, transparent 5.4rem, color-mix(in srgb, var(--security-stroke) 18%, transparent) 5.4rem, color-mix(in srgb, var(--security-stroke) 18%, transparent) calc(5.4rem + 1px), transparent calc(5.4rem + 1px)),
        repeating-linear-gradient(0deg, transparent 0, transparent 31px, color-mix(in srgb, var(--grid) 36%, transparent) 31px, color-mix(in srgb, var(--grid) 36%, transparent) 32px);
      background-attachment: fixed;
    }

    /* Gallery/embed mode keeps the generated artifact as the source of truth
       while presenting only its diagram surface inside a proof card. */
    html[data-embed="true"] body {
      min-height: 0;
      padding: 0;
      overflow: hidden;
      background: var(--bg);
      background-image: none;
    }
    html[data-embed="true"] .toolbar,
    html[data-embed="true"] .header,
    html[data-embed="true"] .cards,
    html[data-embed="true"] .diagram-nav,
    html[data-embed="true"] .overview-map,
    html[data-embed="true"] .focus-chip,
    html[data-embed="true"] .route-probe,
    html[data-embed="true"] .semantic-lens,
    html[data-embed="true"] .diagram-guide,
    html[data-embed="true"] .node-finder,
    html[data-embed="true"] .node-outline { display: none !important; }
    html[data-embed="true"] .container { max-width: none; }
    html[data-embed="true"] .diagram-container {
      padding: 0.5rem;
      border: 0;
      border-radius: 0;
      box-shadow: none;
    }
    html[data-embed="true"] .diagram-container svg { min-width: 0; }

    /* Presentation Stage is a viewer-only layer: it gives the live diagram
       the viewport while keeping guided views, theme, focus, and exports real.
       Embed mode wins when both query parameters are present. */
    html[data-present="true"]:not([data-embed="true"]) body {
      --archify-page-top: 1rem;
      height: 100dvh;
      min-height: 0;
      padding: 1rem;
      overflow: hidden;
    }
    html[data-present="true"]:not([data-embed="true"]) .container {
      display: flex;
      flex-direction: column;
      gap: 0.75rem;
      width: 100%;
      max-width: none;
      height: calc(100dvh - 2rem);
    }
    html[data-present="true"]:not([data-embed="true"]) .header {
      flex: none;
      min-width: 0;
      margin: 0;
      padding-right: 23rem;
    }
    html[data-present="true"]:not([data-embed="true"]) .header-row { margin-bottom: 0.25rem; }
    html[data-present="true"]:not([data-embed="true"]) .subtitle {
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
    }

    html[data-present="true"]:not([data-embed="true"]) .diagram-container {
      display: flex;
      flex: 1 1 auto;
      align-items: center;
      justify-content: center;
      min-height: 0;
      padding: 0.75rem;
      padding-bottom: calc(0.75rem + var(--archify-nav-reserve));
    }
    html[data-present="true"]:not([data-embed="true"]) .diagram-container > svg {
      flex: 1 1 auto;
      height: 100%;
      min-height: 0;
      width: 100%;
      min-width: 0;
    }
    html[data-present="true"]:not([data-embed="true"]) .cards { display: none; }
    html[data-present="true"]:not([data-embed="true"]) #btn-present {
      border-color: var(--frontend-stroke);
      color: var(--frontend-stroke);
    }

    /* The reader owns only the outer scale. Wide diagrams and measured tall workflows keep one authored
       SVG/viewBox while the runtime chooses a desktop width from the actual
       vertical budget. This avoids device-specific files and breakpoint
       jumps between a laptop and a tall monitor. */
    .container {
      width: 100%;
      max-width: var(--archify-reader-width, 1440px);
      margin: 0 auto;
    }
    html[data-reader-narrow="true"]:not([data-present="true"]) .diagram-container > svg {
      min-width: 0;
      max-width: var(--archify-diagram-max-width);
      margin-inline: auto;
    }
    @media (min-width: 768px) and (max-height: 920px) {
      .header { margin-bottom: 1rem; }
      .diagram-container { padding: 1rem; }
      .cards { margin-top: 1rem; }
      .card { padding: 1rem; }
    }

    .header { margin-bottom: 1.5rem; padding-right: 29.5rem; }

    html[data-preset="signal-flow"] .header,
    html[data-preset="blueprint"] .header,
    html[data-preset="editorial"] .header { padding-right: 29.5rem; }

    .header-row {
      display: flex;
      align-items: center;
      gap: 0.75rem;
      min-height: 2.75rem;
      margin-bottom: 0.25rem;
    }

    .pulse-dot {
      flex: none;
      width: 10px;
      height: 10px;
      background: var(--frontend-stroke);
      border-radius: 50%;
      box-shadow: 0 0 0 4px color-mix(in srgb, var(--frontend-stroke) 16%, transparent);
      animation: none;
    }

    html[data-motion-capable="true"] .pulse-dot { animation: pulse 2s infinite; }

    @keyframes pulse {
      0%, 100% { opacity: 1; }
      50% { opacity: 0.5; }
    }

    h1 {
      font-size: 1.5rem;
      font-weight: 650;
      line-height: 1.25;
      letter-spacing: -0.015em;
    }

    .subtitle {
      color: var(--text-muted);
      font-size: 0.875rem;
      line-height: 1.55;
      margin-left: 1.375rem;
    }

    html[data-preset="signal-flow"] .header-row::after {
      content: attr(data-preset-badge-signal-flow);
      flex: none;
      margin-left: 0.25rem;
      color: var(--frontend-stroke);
      border: 1px solid var(--frontend-stroke);
      border-radius: 999px;
      padding: 0.28rem 0.6rem;
      font-size: 0.625rem;
      letter-spacing: 0.12em;
      opacity: 0.82;
      box-shadow: 0 0 20px rgba(34, 211, 238, 0.12);
      white-space: nowrap;
    }

    html[data-preset="blueprint"] .pulse-dot {
      width: 10px;
      height: 10px;
      border: 1px solid var(--frontend-stroke);
      border-radius: 1px;
      background: transparent;
      box-shadow: inset 0 0 0 2px var(--bg);
      transform: rotate(45deg);
      animation: none;
    }
    html[data-preset="blueprint"] .header-row::after {
      content: attr(data-preset-badge-blueprint);
      flex: none;
      margin-left: 0.25rem;
      padding: 0.28rem 0.55rem;
      border-top: 1px solid var(--frontend-stroke);
      border-bottom: 1px solid var(--frontend-stroke);
      color: var(--frontend-stroke);
      font-size: 0.5625rem;
      font-weight: 700;
      letter-spacing: 0.14em;
      white-space: nowrap;
    }

    html[data-preset="editorial"] h1,
    html[data-preset="editorial"] .card h3 {
      font-family: Georgia, 'Times New Roman', 'Songti SC', STSong, serif;
      letter-spacing: -0.02em;
    }
    html[data-preset="editorial"] h1 { font-size: 1.72rem; font-weight: 600; }
    html[data-preset="editorial"] .pulse-dot {
      width: 9px;
      height: 9px;
      border: 1px solid var(--arrow-emphasis);
      border-radius: 0;
      background: var(--arrow-emphasis);
      box-shadow: 0 0 0 3px color-mix(in srgb, var(--arrow-emphasis) 14%, transparent);
      transform: rotate(45deg);
      animation: none;
    }
    html[data-preset="editorial"] .header-row::after {
      content: attr(data-preset-badge-editorial);
      flex: none;
      margin-left: 0.25rem;
      padding: 0.32rem 0 0.24rem;
      border-bottom: 2px solid var(--arrow-emphasis);
      color: var(--arrow-emphasis);
      font-family: Georgia, 'Times New Roman', serif;
      font-size: 0.625rem;
      font-style: italic;
      font-weight: 600;
      letter-spacing: 0.08em;
      white-space: nowrap;
    }

    .diagram-container {
      --archify-nav-reserve: 0px;
      background: var(--panel);
      border-radius: 1rem;
      border: 1px solid var(--panel-border);
      box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04), 0 16px 40px -20px rgba(15, 23, 42, 0.18);
      padding: 1.5rem;
      padding-bottom: calc(1.5rem + var(--archify-nav-reserve));
      overflow: hidden;
      position: relative;
    }

    html[data-preset="signal-flow"] .diagram-container {
      position: relative;
      overflow: hidden;
      background: linear-gradient(180deg, rgba(8, 20, 38, 0.82), rgba(3, 8, 18, 0.94));
      box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04), 0 28px 80px rgba(0, 0, 0, 0.34);
    }
    html[data-preset="signal-flow"][data-theme="light"] .diagram-container {
      background: linear-gradient(180deg, rgba(255, 255, 255, 0.9), rgba(237, 246, 250, 0.94));
      box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.72), 0 24px 60px rgba(45, 78, 99, 0.12);
    }
    html[data-preset="blueprint"] .diagram-container {
      border-color: var(--panel-border);
      border-radius: 0.35rem;
      background: var(--panel);
      box-shadow:
        inset 0 0 0 1px color-mix(in srgb, var(--panel-border) 34%, transparent),
        0 18px 48px rgba(0, 0, 0, 0.16);
    }
    html[data-preset="blueprint"] .diagram-container::after {
      content: "";
      position: absolute;
      z-index: 10;
      inset: 0.7rem;
      pointer-events: none;
      background:
        linear-gradient(var(--frontend-stroke), var(--frontend-stroke)) left top / 1.35rem 1px no-repeat,
        linear-gradient(var(--frontend-stroke), var(--frontend-stroke)) left top / 1px 1.35rem no-repeat,
        linear-gradient(var(--frontend-stroke), var(--frontend-stroke)) right top / 1.35rem 1px no-repeat,
        linear-gradient(var(--frontend-stroke), var(--frontend-stroke)) right top / 1px 1.35rem no-repeat,
        linear-gradient(var(--frontend-stroke), var(--frontend-stroke)) left bottom / 1.35rem 1px no-repeat,
        linear-gradient(var(--frontend-stroke), var(--frontend-stroke)) left bottom / 1px 1.35rem no-repeat,
        linear-gradient(var(--frontend-stroke), var(--frontend-stroke)) right bottom / 1.35rem 1px no-repeat,
        linear-gradient(var(--frontend-stroke), var(--frontend-stroke)) right bottom / 1px 1.35rem no-repeat;
      opacity: 0.58;
    }
    html[data-preset="editorial"] .diagram-container {
      overflow: hidden;
      border-color: var(--panel-border);
      border-radius: 0.38rem;
      background:
        linear-gradient(90deg, color-mix(in srgb, var(--security-fill) 58%, transparent), transparent 12%),
        var(--panel);
      box-shadow:
        0 1px 0 color-mix(in srgb, var(--text) 6%, transparent),
        0 18px 48px color-mix(in srgb, #000 19%, transparent);
    }
    html[data-preset="editorial"] .diagram-container::after {
      position: absolute;
      z-index: 10;
      top: 0.72rem;
      right: 1.25rem;
      padding: 0.2rem 0.52rem;
      border: 1px solid var(--panel-border);
      background: var(--panel);
      color: var(--arrow-emphasis);
      content: attr(data-preset-badge-editorial-plate);
      font-family: Georgia, 'Times New Roman', serif;
      font-size: 0.52rem;
      font-style: italic;
      font-weight: 600;
      letter-spacing: 0.09em;
      pointer-events: none;
    }
    html[data-embed="true"][data-preset="editorial"] .diagram-container::after { display: none; }
    html[data-motion-capable="true"][data-preset="signal-flow"][data-ambient-motion="running"] .diagram-container::before {
      content: "";
      position: absolute;
      inset: 0;
      pointer-events: none;
      background: linear-gradient(115deg, transparent 28%, rgba(103, 232, 249, 0.035) 48%, transparent 68%);
      transform: translateX(-70%);
      animation: archify-signal-scan 4.8s ease-in-out 1 both;
    }

    /* Motion Governor gives the reader a real static state and gives the
       strongest semantic action the only motion budget. Atmosphere resets to
       its authored base instead of freezing mid-cycle. Static artifacts never
       start a decorative pulse or scan. */
    html:not([data-motion-capable="true"]) svg[data-animation="trace"] [data-animate] {
      animation: none !important;
    }
    html:not([data-motion-capable="true"]) svg[data-animation="trace"] [data-graph-role="automatic-crossover"]:has(> [data-animate="edge"]) > [data-graph-role="automatic-crossover-underlay"] {
      animation: none !important;
    }
    html[data-motion="still"] .pulse-dot,
    html[data-motion="still"] .diagram-container::before,
    html[data-motion="still"] svg[data-animation="trace"] [data-animate],
    html[data-motion-owner] .pulse-dot,
    html[data-motion-owner] .diagram-container::before,
    html[data-motion-owner] svg[data-animation="trace"] [data-animate],
    html[data-embed="true"] .pulse-dot,
    html[data-embed="true"] .diagram-container::before,
    html[data-share-playback="true"] .pulse-dot,
    html[data-share-playback="true"] .diagram-container::before,
    html[data-document-hidden="true"] .pulse-dot,
    html[data-document-hidden="true"] .diagram-container::before,
    html[data-document-hidden="true"] svg[data-animation="trace"] [data-animate],
    html[data-motion="still"] svg[data-animation="trace"] [data-graph-role="automatic-crossover"]:has(> [data-animate="edge"]) > [data-graph-role="automatic-crossover-underlay"],
    html[data-motion-owner] svg[data-animation="trace"] [data-graph-role="automatic-crossover"]:has(> [data-animate="edge"]) > [data-graph-role="automatic-crossover-underlay"],
    html[data-embed="true"] svg[data-animation="trace"] [data-graph-role="automatic-crossover"]:has(> [data-animate="edge"]) > [data-graph-role="automatic-crossover-underlay"],
    html[data-share-playback="true"] svg[data-animation="trace"] [data-graph-role="automatic-crossover"]:has(> [data-animate="edge"]) > [data-graph-role="automatic-crossover-underlay"],
    html[data-document-hidden="true"] svg[data-animation="trace"] [data-graph-role="automatic-crossover"]:has(> [data-animate="edge"]) > [data-graph-role="automatic-crossover-underlay"] {
      animation: none !important;
    }
    html[data-motion="still"] .diagram-container::before,
    html[data-motion-owner] .diagram-container::before,
    html[data-embed="true"] .diagram-container::before,
    html[data-share-playback="true"] .diagram-container::before {
      opacity: 0;
    }
    html[data-motion="still"] .intent-trace-flow,
    html[data-motion="still"] .route-probe-flow,
    html[data-motion="still"] .route-journey-flow,
    html[data-motion="still"] .semantic-lens-flow,
    html[data-motion="still"] .diagram-guide,
    html[data-motion="still"] .overview-map-live,
    html[data-document-hidden="true"] .intent-trace-flow,
    html[data-document-hidden="true"] .route-probe-flow,
    html[data-document-hidden="true"] .route-journey-flow,
    html[data-document-hidden="true"] .semantic-lens-flow,
    html[data-document-hidden="true"] .diagram-guide,
    html[data-document-hidden="true"] .overview-map-live {
      animation: none !important;
    }

    html[data-motion="still"] .intent-trace-flow,
    html[data-motion="still"] .route-probe-flow {
      stroke-dasharray: none;
      stroke-dashoffset: 0;
      opacity: 0.72;
    }
    html[data-motion="still"] .route-journey-overlay,
    html[data-document-hidden="true"] .route-journey-overlay { display: none !important; }
    html[data-motion="still"] .relationship-pulse-overlay { display: none !important; }

    html[data-motion="still"] svg [data-node-id],
    html[data-motion="still"] svg [data-edge-from],
    html[data-motion="still"] svg [data-detail],
    html[data-motion="still"] svg [data-detail-anchor],
    html[data-motion="still"] svg [data-legend-hit],
    html[data-motion="still"] svg {
      transition: none !important;
    }

    svg {
      font-family: 'JetBrains Mono', ui-monospace, SFMono-Regular, Menlo, Consolas, 'DejaVu Sans Mono', 'Liberation Mono', 'Noto Sans Mono CJK SC', 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei', monospace;
      width: 100%;
      min-width: min(900px, 100%);
      display: block;
      transform-origin: 0 0;
      transition: transform 0.18s ease;
    }

    .diagram-container.is-camera-moving svg {
      transition: transform 0.42s cubic-bezier(0.22, 1, 0.36, 1);
    }
    .diagram-container.is-camera-transaction svg { transition: none; }
    .diagram-container.is-pannable { cursor: grab; }
    .diagram-container.is-panning { cursor: grabbing; user-select: none; }
    .diagram-container.is-panning svg { transition: none; }

    .diagram-nav {
      position: absolute;
      right: 1rem;
      bottom: 1rem;
      z-index: 12;
      translate: 0 calc(-1 * var(--archify-dock-lift, 0px));
      display: inline-flex;
      align-items: center;
      max-width: calc(100% - 2rem);
      padding: 0.25rem;
      gap: 0.0625rem;
      overflow-x: auto;
      border: 1px solid color-mix(in srgb, var(--panel-border) 80%, transparent);
      border-radius: 0.75rem;
      background: color-mix(in srgb, var(--panel) 84%, transparent);
      box-shadow: 0 1px 2px rgba(15, 23, 42, 0.05), 0 10px 28px -14px rgba(15, 23, 42, 0.28);
      backdrop-filter: blur(14px) saturate(1.2);
      scrollbar-width: none;
    }
    .diagram-nav::-webkit-scrollbar { display: none; }
    .diagram-nav button,
    .focus-chip button {
      border: 0;
      background: transparent;
      color: var(--toolbar-text);
      font: inherit;
      cursor: pointer;
    }
    .diagram-nav button {
      min-width: 2rem;
      height: 2rem;
      padding: 0 0.4rem;
      border-radius: 0.5rem;
      color: var(--text-muted);
      font-size: 0.75rem;
      font-weight: 500;
      letter-spacing: 0;
      transition: background 0.15s, color 0.15s;
    }
    .diagram-nav button:hover,
    .diagram-nav button:focus-visible {
      color: var(--text);
      background: color-mix(in srgb, var(--text) 6%, transparent);
    }
    .diagram-nav button:hover,
    .diagram-nav button:focus-visible,
    .focus-chip button:hover,
    .focus-chip button:focus-visible { background: var(--toolbar-hover); }
    .diagram-nav button:focus-visible,
    .focus-chip button:focus-visible {
      outline: 2px solid var(--frontend-stroke);
      outline-offset: 1px;
    }
    .diagram-nav button:disabled { opacity: 0.38; cursor: default; }
    /* The Guide stays on the ? shortcut; Map only earns dock space once the
       reader has zoomed past the full diagram (or opened it from the keyboard). */
    .diagram-nav button[hidden] { display: none; }
    .diagram-container:not(.is-pannable) #btn-overview-map:not([data-radar-requested]):not(:focus) { display: none; }
    .diagram-nav button:disabled:hover { background: transparent; }
    .diagram-nav #btn-route-probe,
    .diagram-nav #btn-overview-map,
    .diagram-nav #btn-semantic-lens {
      min-width: auto;
      padding-inline: 0.6rem;
      color: var(--text-muted);
      font-weight: 500;
    }
    .diagram-nav #btn-node-finder,
    .diagram-nav [data-view="out"] {
      position: relative;
      margin-left: 0.375rem;
    }
    .diagram-nav #btn-node-finder::before,
    .diagram-nav [data-view="out"]::before {
      position: absolute;
      top: 0.55rem;
      bottom: 0.55rem;
      left: -0.19rem;
      width: 1px;
      background: color-mix(in srgb, var(--panel-border) 90%, transparent);
      content: "";
      pointer-events: none;
    }
    .diagram-nav-icon {
      display: block;
      width: 0.875rem;
      height: 0.875rem;
      margin: auto;
      background: currentColor;
      -webkit-mask-position: center;
      -webkit-mask-repeat: no-repeat;
      -webkit-mask-size: contain;
      mask-position: center;
      mask-repeat: no-repeat;
      mask-size: contain;
    }
    .diagram-nav-icon.find {
      -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Ccircle cx='8.5' cy='8.5' r='4.5' fill='none' stroke='black' stroke-width='1.8'/%3E%3Cpath d='m12 12 4 4' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round'/%3E%3C/svg%3E");
      mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Ccircle cx='8.5' cy='8.5' r='4.5' fill='none' stroke='black' stroke-width='1.8'/%3E%3Cpath d='m12 12 4 4' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round'/%3E%3C/svg%3E");
    }
    .diagram-nav-icon.guide {
      -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Ccircle cx='10' cy='10' r='7' fill='none' stroke='black' stroke-width='1.7'/%3E%3Cpath d='M7.8 7.3a2.4 2.4 0 014.6.9c0 1.8-2.4 2-2.4 3.7M10 14.9h.01' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round'/%3E%3C/svg%3E");
      mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Ccircle cx='10' cy='10' r='7' fill='none' stroke='black' stroke-width='1.7'/%3E%3Cpath d='M7.8 7.3a2.4 2.4 0 014.6.9c0 1.8-2.4 2-2.4 3.7M10 14.9h.01' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round'/%3E%3C/svg%3E");
    }
    .diagram-nav-icon.minus {
      -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5 10h10' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round'/%3E%3C/svg%3E");
      mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5 10h10' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round'/%3E%3C/svg%3E");
    }
    .diagram-nav-icon.plus {
      -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M10 5v10M5 10h10' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round'/%3E%3C/svg%3E");
      mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M10 5v10M5 10h10' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round'/%3E%3C/svg%3E");
    }
    .diagram-nav [data-view="reset"] {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 0.2rem;
      min-width: 3.1rem;
      padding-inline: 0.35rem;
    }
    .diagram-nav [data-view="reset"][data-detail-visible] {
      min-width: 3.8rem;
    }
    .diagram-nav-detail {
      color: color-mix(in srgb, var(--toolbar-text) 52%, transparent);
      font-size: 0.44rem;
      font-weight: 700;
      line-height: 1;
      letter-spacing: 0.07em;
    }
    .diagram-nav-percent {
      color: var(--text-muted);
      font-size: 0.75rem;
      font-weight: 500;
      font-variant-numeric: tabular-nums;
      line-height: 1;
    }
    /* Mode buttons carry a small glyph so the dock reads as one icon language. */
    .diagram-nav #btn-route-probe,
    .diagram-nav #btn-overview-map,
    .diagram-nav #btn-semantic-lens {
      display: inline-flex;
      align-items: center;
      gap: 0.375rem;
      padding-inline: 0.55rem 0.65rem;
    }
    .diagram-nav #btn-route-probe::before,
    .diagram-nav #btn-overview-map::before,
    .diagram-nav #btn-semantic-lens::before {
      flex: none;
      width: 0.875rem;
      height: 0.875rem;
      background: currentColor;
      content: "";
      opacity: 0.85;
      -webkit-mask: var(--nav-glyph) center / contain no-repeat;
      mask: var(--nav-glyph) center / contain no-repeat;
    }
    .diagram-nav #btn-route-probe { --nav-glyph: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cg fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round'%3E%3Ccircle cx='4.8' cy='14.8' r='2.2'/%3E%3Ccircle cx='15.2' cy='5.2' r='2.2'/%3E%3Cpath d='M6.9 13.9c3.8-1.4 2.6-6.3 6.2-7.8'/%3E%3C/g%3E%3C/svg%3E"); }
    .diagram-nav #btn-overview-map { --nav-glyph: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cg fill='none' stroke='black' stroke-width='1.7' stroke-linejoin='round'%3E%3Cpath d='M2.8 5.4 7.4 3.5l5.2 2 4.6-1.9v11l-4.6 1.9-5.2-2-4.6 1.9z'/%3E%3Cpath d='M7.4 3.5v11M12.6 5.5v11'/%3E%3C/g%3E%3C/svg%3E"); }
    .diagram-nav #btn-semantic-lens { --nav-glyph: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cg fill='none' stroke='black' stroke-width='1.7'%3E%3Ccircle cx='10' cy='10' r='6.8'/%3E%3Ccircle cx='10' cy='10' r='2.6'/%3E%3C/g%3E%3C/svg%3E"); }
    /* Zoom out / level / zoom in join into one stepper well. */
    .diagram-nav [data-view="out"],
    .diagram-nav [data-view="reset"],
    .diagram-nav [data-view="in"] {
      border-radius: 0;
      background: color-mix(in srgb, var(--text) 4.5%, transparent);
    }
    .diagram-nav [data-view="out"] { margin-left: 0.375rem; border-radius: 0.5rem 0 0 0.5rem; }
    .diagram-nav [data-view="out"]::before { display: none; }
    .diagram-nav [data-view="reset"],
    .diagram-nav [data-view="in"] { margin-left: -0.0625rem; }
    .diagram-nav [data-view="in"] { border-radius: 0 0.5rem 0.5rem 0; }
    .diagram-nav [data-view="out"]:hover,
    .diagram-nav [data-view="reset"]:hover,
    .diagram-nav [data-view="in"]:hover { background: color-mix(in srgb, var(--text) 9%, transparent); }
    .diagram-nav [data-view="out"]:disabled,
    .diagram-nav [data-view="in"]:disabled { opacity: 1; color: color-mix(in srgb, var(--text-muted) 40%, transparent); }
    .diagram-nav [data-view="out"]:disabled:hover,
    .diagram-nav [data-view="in"]:disabled:hover { background: color-mix(in srgb, var(--text) 4.5%, transparent); }
    .diagram-nav [data-view="reset"] { min-width: 3.25rem; }
    .diagram-container[data-camera-indicator="true"] .diagram-nav-detail,
    .diagram-container[data-camera-indicator="true"] .diagram-nav-percent { color: var(--frontend-stroke); }
    .diagram-nav #btn-diagram-guide[aria-expanded="true"] {
      color: var(--cloud-stroke);
      background: var(--toolbar-hover);
    }

    /* Semantic Radar is a deliberately simplified, viewer-only overview. It
       uses authored node bounds and the live camera viewport rather than
       cloning the canonical SVG, so IDs, filters, animation, and export state
       stay singular and deterministic. */
    .overview-map {
      position: absolute;
      right: 1rem;
      bottom: calc(4.15rem + var(--archify-nav-reserve));
      z-index: 12;
      width: 11.25rem;
      overflow: hidden;
      border: 1px solid color-mix(in srgb, var(--frontend-stroke) 52%, var(--toolbar-border));
      border-radius: 0.78rem;
      background: var(--toolbar-menu-bg);
      color: var(--toolbar-text);
      box-shadow: 0 16px 42px rgba(0, 0, 0, 0.3);
      backdrop-filter: blur(16px);
      font-size: 0.625rem;
    }
    .overview-map[hidden] { display: none; }
    .overview-map[data-docked="true"] {
      position: fixed;
      right: var(--archify-radar-right, 1rem);
      top: var(--archify-radar-top, 1rem);
      bottom: auto;
    }
    .overview-map[data-docked="true"][data-dock-side="left"] {
      right: auto;
      left: var(--archify-radar-left, 1rem);
    }
    html[data-preset="blueprint"] .overview-map { border-radius: 0.28rem; }
    .overview-map-head {
      display: grid;
      grid-template-columns: auto minmax(0, 1fr) auto;
      align-items: center;
      gap: 0.45rem;
      min-height: 2.25rem;
      padding: 0.42rem 0.48rem 0.38rem 0.55rem;
      border-bottom: 1px solid var(--toolbar-border);
      background: linear-gradient(110deg, color-mix(in srgb, var(--frontend-fill) 45%, transparent), transparent 68%);
      cursor: grab;
      touch-action: none;
      user-select: none;
    }
    .overview-map[data-panel-dragging="true"] .overview-map-head { cursor: grabbing; }
    .overview-map[data-placement-invalid="true"] {
      border-color: var(--security-stroke);
      box-shadow: 0 0 0 2px color-mix(in srgb, var(--security-stroke) 34%, transparent), 0 16px 42px rgba(0, 0, 0, 0.3);
    }
    .overview-map[data-compact="true"] {
      width: 7.4rem;
    }
    .overview-map[data-compact="true"] .overview-map-head {
      grid-template-columns: minmax(0, 1fr) auto;
      gap: 0.24rem;
      min-height: 1.5rem;
      padding: 0.05rem 0.16rem 0.05rem 0.32rem;
      border-bottom: 0;
    }
    .overview-map[data-compact="true"] .overview-map-live,
    .overview-map[data-compact="true"] .overview-map-copy,
    .overview-map[data-compact="true"] .overview-map-surface,
    .overview-map[data-compact="true"] .overview-map-hint {
      display: none;
    }
    .overview-map[data-compact="true"] .overview-map-expand { display: inline-flex; }
    .overview-map[data-compact="true"] .overview-map-close {
      width: 1.15rem;
      height: 1.15rem;
      font-size: 0.72rem;
    }
    .overview-map-live {
      width: 0.42rem;
      height: 0.42rem;
      border-radius: 50%;
      background: var(--backend-stroke);
      box-shadow: 0 0 0 0 color-mix(in srgb, var(--backend-stroke) 52%, transparent);
      animation: archify-radar-live 2.4s ease-out infinite;
    }
    .overview-map-copy { min-width: 0; line-height: 1.1; }
    .overview-map-copy strong {
      display: block;
      overflow: hidden;
      color: var(--frontend-stroke);
      font-size: 0.59rem;
      letter-spacing: 0.12em;
      text-transform: uppercase;
      white-space: nowrap;
      text-overflow: ellipsis;
    }
    .overview-map-copy small {
      display: block;
      margin-top: 0.18rem;
      overflow: hidden;
      color: var(--text-faint);
      font-size: 0.52rem;
      letter-spacing: 0.04em;
      white-space: nowrap;
      text-overflow: ellipsis;
    }
    .overview-map-expand {
      display: none;
      align-items: center;
      justify-content: center;
      min-width: 0;
      height: 1.2rem;
      padding: 0 0.34rem;
      overflow: hidden;
      border: 0;
      border-radius: 0.3rem;
      background: transparent;
      color: var(--frontend-stroke);
      font: inherit;
      font-size: 0.49rem;
      font-weight: 700;
      letter-spacing: 0.06em;
      text-transform: uppercase;
      white-space: nowrap;
      cursor: pointer;
    }
    .overview-map-close {
      width: 1.55rem;
      height: 1.55rem;
      padding: 0;
      border: 0;
      border-radius: 0.34rem;
      background: transparent;
      color: var(--toolbar-text);
      font: inherit;
      font-size: 0.9rem;
      cursor: pointer;
    }
    .overview-map-expand:hover,
    .overview-map-expand:focus-visible,
    .overview-map-close:hover,
    .overview-map-close:focus-visible { background: var(--toolbar-hover); }
    .overview-map-expand:focus-visible,
    .overview-map-close:focus-visible,
    .overview-map-surface:focus-visible,
    .overview-map-node:focus-visible {
      outline: 2px solid var(--frontend-stroke);
      outline-offset: 1px;
    }
    .overview-map-surface {
      position: relative;
      height: 7rem;
      margin: 0.42rem;
      overflow: hidden;
      border: 1px solid color-mix(in srgb, var(--panel-border) 72%, transparent);
      border-radius: 0.42rem;
      background:
        linear-gradient(color-mix(in srgb, var(--panel-border) 26%, transparent) 1px, transparent 1px),
        linear-gradient(90deg, color-mix(in srgb, var(--panel-border) 26%, transparent) 1px, transparent 1px),
        color-mix(in srgb, var(--bg) 86%, transparent);
      background-size: 12px 12px;
      cursor: crosshair;
      touch-action: none;
    }
    html[data-preset="blueprint"] .overview-map-surface { border-radius: 0.1rem; }
    .overview-map-surface > svg {
      width: 100%;
      height: 100%;
      min-width: 0;
      transform: none !important;
      transition: none !important;
      display: block;
      overflow: visible;
    }
    .overview-map-node {
      fill: var(--backend-stroke);
      fill-opacity: 0.52;
      stroke: var(--backend-stroke);
      stroke-opacity: 0.86;
      vector-effect: non-scaling-stroke;
      cursor: pointer;
      transition: fill-opacity 140ms ease, stroke-width 140ms ease, filter 140ms ease;
    }
    .overview-map-node[data-kind="frontend"],
    .overview-map-node[data-kind="start"] { fill: var(--frontend-stroke); stroke: var(--frontend-stroke); }
    .overview-map-node[data-kind="database"],
    .overview-map-node[data-kind="success"] { fill: var(--database-stroke); stroke: var(--database-stroke); }
    .overview-map-node[data-kind="cloud"],
    .overview-map-node[data-kind="waiting"] { fill: var(--cloud-stroke); stroke: var(--cloud-stroke); }
    .overview-map-node[data-kind="messagebus"] { fill: var(--messagebus-stroke); stroke: var(--messagebus-stroke); }
    .overview-map-node[data-kind="security"],
    .overview-map-node[data-kind="decision"],
    .overview-map-node[data-kind="failure"] { fill: var(--security-stroke); stroke: var(--security-stroke); }
    .overview-map-node[data-kind="external"],
    .overview-map-node[data-kind="neutral"] { fill: var(--external-stroke); stroke: var(--external-stroke); }
    .overview-map-node[data-radar-active="true"],
    .overview-map-node:hover,
    .overview-map-node:focus-visible {
      fill-opacity: 0.92;
      stroke-width: 2.2;
      filter: drop-shadow(0 0 3px currentColor);
    }
    .overview-map-viewport {
      fill: color-mix(in srgb, var(--frontend-fill) 56%, transparent);
      stroke: var(--frontend-stroke);
      stroke-width: 2;
      vector-effect: non-scaling-stroke;
      pointer-events: none;
      filter: drop-shadow(0 0 3px color-mix(in srgb, var(--frontend-stroke) 54%, transparent));
    }
    .overview-map-hint {
      display: flex;
      justify-content: space-between;
      gap: 0.5rem;
      padding: 0 0.52rem 0.46rem;
      color: var(--text-faint);
      font-size: 0.49rem;
      letter-spacing: 0.06em;
      text-transform: uppercase;
    }
    .diagram-nav #btn-overview-map[aria-expanded="true"] {
      color: var(--frontend-stroke);
      background: color-mix(in srgb, var(--frontend-stroke) 11%, transparent);
    }
    .overview-map-feedback {
      position: absolute;
      right: 1rem;
      bottom: 4.15rem;
      z-index: 13;
      max-width: min(16rem, calc(100% - 2rem));
      padding: 0.38rem 0.55rem;
      border: 1px solid color-mix(in srgb, var(--frontend-stroke) 52%, var(--toolbar-border));
      border-radius: 0.5rem;
      background: var(--toolbar-menu-bg);
      color: var(--toolbar-text);
      box-shadow: 0 8px 24px rgba(0, 0, 0, 0.2);
      font-size: 0.52rem;
      line-height: 1.35;
      pointer-events: none;
    }
    .overview-map-feedback[hidden] { display: none; }
    .focus-chip[data-radar-yielded="true"] { display: none !important; }
    .diagram-nav #btn-route-probe[aria-pressed="true"] {
      color: var(--backend-stroke);
      background: color-mix(in srgb, var(--backend-stroke) 11%, transparent);
    }
    .diagram-nav #btn-semantic-lens[aria-expanded="true"],
    .diagram-nav #btn-semantic-lens[aria-pressed="true"] {
      color: var(--database-stroke);
      background: color-mix(in srgb, var(--database-stroke) 11%, transparent);
    }

    /* Semantic Lens turns the compiled node-kind palette into an analytical
       legend. One kind reveals its real traffic; two kinds compare only their
       direct authored relationships. Geometry and the canonical SVG stay put. */
    .semantic-lens {
      position: absolute;
      right: 1rem;
      bottom: calc(4.15rem + var(--archify-nav-reserve));
      z-index: 24;
      width: min(20rem, calc(100% - 2rem));
      overflow: hidden;
      border: 1px solid color-mix(in srgb, var(--database-stroke) 58%, var(--toolbar-border));
      border-radius: 0.82rem;
      background:
        linear-gradient(135deg, color-mix(in srgb, var(--database-fill) 34%, transparent), transparent 48%),
        var(--toolbar-menu-bg);
      color: var(--toolbar-text);
      box-shadow: 0 18px 52px rgba(0, 0, 0, 0.36);
      backdrop-filter: blur(18px);
      animation: archify-lens-in 180ms cubic-bezier(0.22, 1, 0.36, 1);
    }
    .semantic-lens[hidden] { display: none; }
    .semantic-lens[data-dock-side="left"] { left: 1rem; right: auto; }
    .semantic-lens[data-dock-side="right"] { left: auto; right: 1rem; }
    html[data-preset="blueprint"] .semantic-lens { border-radius: 0.28rem; }
    .semantic-lens-head {
      display: grid;
      grid-template-columns: minmax(0, 1fr) auto;
      align-items: start;
      gap: 0.75rem;
      padding: 0.72rem 0.78rem 0.62rem;
      border-bottom: 1px solid var(--toolbar-border);
    }
    .semantic-lens-eyebrow {
      display: block;
      color: var(--database-stroke);
      font-size: 0.5rem;
      font-weight: 800;
      letter-spacing: 0.16em;
      text-transform: uppercase;
    }
    .semantic-lens-title {
      display: block;
      margin-top: 0.16rem;
      color: var(--text);
      font-size: 0.82rem;
      letter-spacing: -0.02em;
    }
    .semantic-lens-close {
      width: 1.75rem;
      height: 1.75rem;
      padding: 0;
      border: 0;
      border-radius: 0.35rem;
      background: transparent;
      color: var(--toolbar-text);
      font: inherit;
      font-size: 1rem;
      cursor: pointer;
    }
    .semantic-lens-close:hover,
    .semantic-lens-close:focus-visible { background: var(--toolbar-hover); }
    .semantic-lens-instruction {
      margin: 0;
      padding: 0.52rem 0.78rem 0.48rem;
      color: var(--text-faint);
      font-size: 0.55rem;
      line-height: 1.45;
    }
    .semantic-lens-kinds {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 0.3rem;
      max-height: min(15rem, 40vh);
      padding: 0 0.5rem 0.5rem;
      overflow-y: auto;
      scrollbar-width: thin;
    }
    .semantic-lens-kind {
      --lens-color: var(--external-stroke);
      display: grid;
      grid-template-columns: auto minmax(0, 1fr) auto;
      align-items: center;
      gap: 0.42rem;
      min-width: 0;
      min-height: 2.15rem;
      padding: 0.35rem 0.42rem;
      border: 1px solid color-mix(in srgb, var(--lens-color) 24%, var(--toolbar-border));
      border-radius: 0.45rem;
      background: color-mix(in srgb, var(--panel) 76%, transparent);
      color: var(--toolbar-text);
      font: inherit;
      text-align: left;
      cursor: pointer;
      transition: border-color 140ms ease, background 140ms ease, opacity 140ms ease;
    }
    html[data-preset="blueprint"] .semantic-lens-kind { border-radius: 0.12rem; }
    .semantic-lens-kind[data-kind="frontend"],
    .semantic-lens-kind[data-kind="start"] { --lens-color: var(--frontend-stroke); }
    .semantic-lens-kind[data-kind="backend"],
    .semantic-lens-kind[data-kind="active"] { --lens-color: var(--backend-stroke); }
    .semantic-lens-kind[data-kind="database"],
    .semantic-lens-kind[data-kind="success"] { --lens-color: var(--database-stroke); }
    .semantic-lens-kind[data-kind="cloud"],
    .semantic-lens-kind[data-kind="waiting"] { --lens-color: var(--cloud-stroke); }
    .semantic-lens-kind[data-kind="messagebus"] { --lens-color: var(--messagebus-stroke); }
    .semantic-lens-kind[data-kind="security"],
    .semantic-lens-kind[data-kind="decision"],
    .semantic-lens-kind[data-kind="failure"] { --lens-color: var(--security-stroke); }
    .semantic-lens-kind:hover,
    .semantic-lens-kind:focus-visible,
    .semantic-lens-kind[aria-pressed="true"] {
      border-color: color-mix(in srgb, var(--lens-color) 78%, var(--toolbar-border));
      background: color-mix(in srgb, var(--lens-color) 11%, var(--panel));
    }
    .semantic-lens-kind:focus-visible,
    .semantic-lens-close:focus-visible,
    .semantic-lens-actions button:focus-visible {
      outline: 2px solid var(--database-stroke);
      outline-offset: 1px;
    }
    .semantic-lens-kind:disabled { opacity: 0.34; cursor: default; }
    .semantic-lens-swatch {
      width: 0.48rem;
      height: 0.48rem;
      border-radius: 50%;
      background: var(--lens-color);
      box-shadow: 0 0 8px color-mix(in srgb, var(--lens-color) 58%, transparent);
    }
    .semantic-lens-kind strong {
      overflow: hidden;
      color: var(--text);
      font-size: 0.61rem;
      text-overflow: ellipsis;
      white-space: nowrap;
    }
    .semantic-lens-kind em {
      color: var(--lens-color);
      font-size: 0.54rem;
      font-style: normal;
      font-weight: 800;
    }
    .semantic-lens-status {
      min-height: 2.5rem;
      margin: 0;
      padding: 0.55rem 0.78rem;
      border-top: 1px solid var(--toolbar-border);
      color: var(--text-faint);
      font-size: 0.55rem;
      line-height: 1.45;
    }
    .semantic-lens-status strong { color: var(--database-stroke); font-weight: 800; }
    .semantic-lens-actions {
      display: flex;
      justify-content: flex-end;
      gap: 0.28rem;
      padding: 0 0.62rem 0.62rem;
    }
    .semantic-lens-actions button {
      min-height: 1.8rem;
      padding: 0.28rem 0.48rem;
      border: 0;
      border-radius: 0.35rem;
      background: transparent;
      color: var(--toolbar-text);
      font: inherit;
      font-size: 0.56rem;
      cursor: pointer;
    }
    .semantic-lens-actions button:hover { background: var(--toolbar-hover); }
    .semantic-lens-actions #semantic-lens-copy { color: var(--database-stroke); }
    @keyframes archify-lens-in {
      from { opacity: 0; transform: translateY(5px) scale(0.985); }
      to { opacity: 1; transform: translateY(0) scale(1); }
    }

    /* Route Probe answers a reader question over the compiled semantic graph:
       choose two stable nodes and reveal the shortest authored directed route.
       The receipt and signal live entirely in the viewer layer. */
    .route-probe {
      position: absolute;
      left: 1rem;
      bottom: calc(1rem + var(--archify-nav-reserve));
      z-index: 12;
      width: min(46rem, calc(100% - 25rem));
      min-width: 18rem;
      overflow: hidden;
      border: 1px solid color-mix(in srgb, var(--backend-stroke) 62%, var(--toolbar-border));
      border-radius: 0.82rem;
      background:
        linear-gradient(115deg, color-mix(in srgb, var(--backend-fill) 50%, transparent), transparent 62%),
        var(--toolbar-menu-bg);
      color: var(--toolbar-text);
      box-shadow: 0 18px 48px rgba(0, 0, 0, 0.3);
      backdrop-filter: blur(16px);
      font-size: 0.75rem;
    }
    .route-probe[hidden] { display: none; }
    /* Picking needs one line of guidance, not a wide empty card; the panel
       widens only when there is a traced route to show. */
    .route-probe:not([data-state="result"]) { width: min(22rem, calc(100% - 2rem)); min-width: 0; }
    .route-probe-path:has(> .route-probe-placeholder:only-child) { display: none; }
    .route-probe[data-route-dock="top"] {
      top: 1rem;
      bottom: auto;
    }
    html[data-preset="blueprint"] .route-probe { border-radius: 0.25rem; }
    .route-probe-head {
      display: grid;
      grid-template-columns: minmax(0, 1fr) auto;
      align-items: start;
      gap: 0.65rem;
      padding: 0.625rem 0.75rem 0.5rem;
      border-bottom: 1px solid color-mix(in srgb, var(--toolbar-border) 80%, transparent);
    }
    .route-probe-copy { min-width: 0; }
    .route-probe-eyebrow {
      display: block;
      color: var(--backend-stroke);
      font-size: 0.6875rem;
      font-weight: 600;
      letter-spacing: 0.02em;
    }
    .route-probe-title {
      display: block;
      margin-top: 0.14rem;
      overflow: hidden;
      color: var(--toolbar-text);
      font-size: 0.875rem;
      font-weight: 600;
      line-height: 1.3;
      white-space: nowrap;
      text-overflow: ellipsis;
    }
    .route-probe-actions { display: flex; gap: 0.2rem; }
    .route-probe button {
      min-height: 1.55rem;
      padding: 0.25rem 0.42rem;
      border: 0;
      border-radius: 0.36rem;
      background: transparent;
      color: var(--toolbar-text);
      font: inherit;
      cursor: pointer;
    }
    .route-probe button:hover,
    .route-probe button:focus-visible { background: var(--toolbar-hover); }
    .route-probe button:focus-visible {
      outline: 2px solid var(--backend-stroke);
      outline-offset: 1px;
    }
    .route-probe-copy-link { color: var(--frontend-stroke) !important; }
    .route-probe-find { color: var(--backend-stroke) !important; }
    .route-probe-copy-link[hidden] { display: none; }
    .route-probe-find[hidden] { display: none; }
    .route-probe-path {
      display: flex;
      align-items: center;
      min-height: 2.2rem;
      padding: 0.42rem 0.58rem 0.24rem;
      overflow-x: auto;
      scrollbar-width: thin;
      white-space: nowrap;
    }
    .route-probe-node,
    .route-probe button.route-probe-node {
      flex: none;
      max-width: 9.5rem;
      overflow: hidden;
      min-height: 1.75rem !important;
      padding: 0.22rem 0.38rem;
      border: 1px solid color-mix(in srgb, var(--backend-stroke) 46%, var(--toolbar-border));
      border-radius: 999px;
      background: color-mix(in srgb, var(--backend-fill) 52%, transparent);
      color: var(--text);
      font-size: 0.56rem;
      font-weight: 700;
      text-overflow: ellipsis;
      white-space: nowrap;
    }
    .route-probe-node[data-endpoint="start"] {
      border-color: var(--frontend-stroke);
      color: var(--frontend-stroke);
    }
    .route-probe-node[data-endpoint="end"] {
      border-color: var(--security-stroke);
      color: var(--security-stroke);
    }
    .route-probe-node[data-route-journey-state="past"] { opacity: 0.66; }
    .route-probe-node[data-route-journey-state="future"] { opacity: 0.48; }
    .route-probe-node[aria-current="step"] {
      border-color: var(--backend-stroke);
      background: color-mix(in srgb, var(--backend-fill) 82%, var(--toolbar-menu-bg));
      color: var(--text);
      box-shadow: 0 0 0 1px color-mix(in srgb, var(--backend-stroke) 42%, transparent), 0 0 14px color-mix(in srgb, var(--backend-stroke) 34%, transparent);
      opacity: 1;
    }
    html[data-preset="blueprint"] .route-probe-node[aria-current="step"] {
      border-style: double;
      border-width: 3px;
      border-radius: 0.2rem;
      box-shadow: none;
    }
    .route-probe-arrow {
      flex: none;
      padding: 0 0.28rem;
      color: var(--text-faint);
      font-size: 0.65rem;
    }
    .route-probe-placeholder {
      color: var(--text-faint);
      font-size: 0.75rem;
    }
    .route-probe-status {
      display: block;
      min-height: 1.45rem;
      padding: 0.5rem 0.75rem 0.625rem;
      color: var(--text-muted, var(--text-faint));
      font-size: 0.75rem;
      line-height: 1.45;
    }
    .route-journey-controls {
      display: grid;
      grid-template-columns: 2rem minmax(5.8rem, auto) 2rem minmax(4.8rem, auto);
      justify-content: start;
      gap: 0.22rem;
      padding: 0.08rem 0.58rem 0.28rem;
    }
    .route-journey-controls[hidden] { display: none; }
    .route-journey-controls button {
      min-height: 1.8rem;
      border: 1px solid color-mix(in srgb, var(--toolbar-border) 86%, transparent);
      background: color-mix(in srgb, var(--toolbar-bg) 72%, transparent);
      font-size: 0.54rem;
      font-weight: 700;
    }
    .route-journey-controls button:disabled {
      cursor: default;
      opacity: 0.34;
    }
    .route-journey-play { color: var(--backend-stroke) !important; }
    .route-journey-overview { color: var(--frontend-stroke) !important; }
    .route-journey-controls[data-playing="true"] .route-journey-play {
      border-color: color-mix(in srgb, var(--backend-stroke) 64%, var(--toolbar-border));
      background: color-mix(in srgb, var(--backend-fill) 62%, transparent);
    }
    .route-probe[data-state="error"] {
      border-color: color-mix(in srgb, var(--security-stroke) 72%, var(--toolbar-border));
    }
    .route-probe[data-state="error"] .route-probe-status { color: var(--security-stroke); }

    .focus-chip {
      position: absolute;
      left: 1rem;
      top: 1rem;
      z-index: 12;
      display: block;
      width: min(22rem, calc(100% - 13rem));
      max-width: calc(100% - 13rem);
      overflow: hidden;
      border: 1px solid var(--frontend-stroke);
      border-radius: 0.85rem;
      background: var(--toolbar-menu-bg);
      color: var(--toolbar-text);
      box-shadow: 0 18px 48px rgba(0, 0, 0, 0.3);
      backdrop-filter: blur(16px);
      font-size: 0.6875rem;
    }
    .focus-chip[hidden] { display: none; }
    html[data-preset="blueprint"] .focus-chip { border-radius: 0.3rem; }
    .focus-chip button {
      flex: none;
      padding: 0.3rem 0.45rem;
      border-radius: 0.35rem;
      font-size: 0.625rem;
    }
    .relationship-lens-head {
      position: relative;
      display: grid;
      grid-template-columns: minmax(0, 1fr) auto;
      align-items: start;
      gap: 0.75rem;
      padding: 0.9rem 0.75rem 0.65rem;
      border-bottom: 1px solid var(--toolbar-border);
      background: linear-gradient(120deg, color-mix(in srgb, var(--frontend-fill) 34%, transparent), transparent 72%);
    }
    .relationship-lens-drag-handle {
      position: absolute;
      top: 0.12rem;
      left: 50%;
      width: 2.5rem;
      height: 0.78rem;
      padding: 0 !important;
      transform: translateX(-50%);
      color: var(--text-faint) !important;
      cursor: grab;
      touch-action: none;
      user-select: none;
    }
    .relationship-lens-drag-handle::before {
      content: "";
      display: block;
      width: 1.25rem;
      margin: auto;
      border-top: 2px dotted currentColor;
      opacity: 0.72;
    }
    .focus-chip[data-panel-dragging="true"] .relationship-lens-drag-handle { cursor: grabbing; }
    @media (hover: none), (pointer: coarse) {
      .relationship-lens-drag-handle { display: none; }
    }
    .relationship-lens-copy { min-width: 0; }
    .relationship-lens-actions {
      display: flex;
      flex-direction: column;
      align-items: flex-end;
      gap: 0.18rem;
    }
    .relationship-lens-actions button { white-space: nowrap; }
    .relationship-lens-actions #btn-focus-clear {
      display: grid;
      width: 1.75rem;
      height: 1.75rem;
      padding: 0;
      place-items: center;
      color: var(--text-muted);
      font-size: 1rem;
      line-height: 1;
    }
    .relationship-lens-actions #btn-focus-clear:hover,
    .relationship-lens-actions #btn-focus-clear:focus-visible {
      background: var(--toolbar-hover);
      color: var(--text);
    }
    .relationship-lens-actions #btn-focus-copy { color: var(--frontend-stroke); }
    .relationship-lens-actions #btn-focus-relations { display: none; }
    .relationship-lens-eyebrow {
      display: block;
      margin-bottom: 0.18rem;
      color: var(--frontend-stroke);
      font-size: 0.5rem;
      font-weight: 800;
      letter-spacing: 0.14em;
      text-transform: uppercase;
    }
    .relationship-lens-title {
      display: block;
      overflow: hidden;
      color: var(--text);
      font-size: 0.8rem;
      line-height: 1.35;
      text-overflow: ellipsis;
      white-space: nowrap;
    }
    .semantic-passport-detail {
      display: block;
      margin-top: 0.12rem;
      overflow: hidden;
      color: var(--text-muted);
      font-size: 0.625rem;
      line-height: 1.4;
      text-overflow: ellipsis;
      white-space: nowrap;
    }
    .semantic-passport-detail[hidden] { display: none; }
    .semantic-passport-meta {
      display: flex;
      flex-wrap: wrap;
      gap: 0.24rem;
      margin-top: 0.42rem;
    }
    .semantic-passport-meta span,
    .semantic-passport-meta code {
      max-width: 100%;
      overflow: hidden;
      padding: 0.14rem 0.34rem;
      border: 1px solid color-mix(in srgb, var(--toolbar-border) 82%, transparent);
      border-radius: 999px;
      background: color-mix(in srgb, var(--panel) 68%, transparent);
      color: var(--text-faint);
      font: inherit;
      font-size: 0.5rem;
      letter-spacing: 0.04em;
      text-overflow: ellipsis;
      white-space: nowrap;
    }
    .semantic-passport-meta [data-passport="kind"] {
      border-color: color-mix(in srgb, var(--frontend-stroke) 50%, var(--toolbar-border));
      color: var(--frontend-stroke);
      font-weight: 800;
      text-transform: uppercase;
    }
    .semantic-passport-meta [data-passport="tag"] { color: var(--cloud-stroke); }
    .semantic-passport-meta [data-passport="brand"] {
      border-color: color-mix(in srgb, var(--messagebus-stroke) 52%, var(--toolbar-border));
      color: var(--messagebus-stroke);
      font-weight: 700;
    }
    .semantic-passport-meta [hidden] { display: none; }
    html[data-preset="blueprint"] .semantic-passport-meta span,
    html[data-preset="blueprint"] .semantic-passport-meta code { border-radius: 0.1rem; }
    .semantic-passport-evidence {
      margin-top: 0.52rem;
      padding: 0.5rem;
      border: 1px solid color-mix(in srgb, var(--backend-stroke) 32%, var(--toolbar-border));
      border-radius: 0.55rem;
      background: color-mix(in srgb, var(--backend-fill) 18%, var(--panel));
    }
    .semantic-passport-evidence[hidden] { display: none; }
    html[data-preset="blueprint"] .semantic-passport-evidence { border-radius: 0.18rem; }
    .semantic-passport-evidence-head {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 0.55rem;
      margin-bottom: 0.35rem;
    }
    .semantic-passport-evidence-status {
      display: inline-flex;
      align-items: center;
      gap: 0.28rem;
      color: var(--backend-stroke);
      font-size: 0.5rem;
      font-weight: 800;
      letter-spacing: 0.08em;
      text-transform: uppercase;
    }
    .semantic-passport-evidence-status::before {
      content: '';
      width: 0.38rem;
      height: 0.38rem;
      border-radius: 50%;
      background: var(--backend-stroke);
      box-shadow: 0 0 0 3px color-mix(in srgb, var(--backend-stroke) 14%, transparent);
    }
    .semantic-passport-repository {
      min-width: 0;
      overflow: hidden;
      color: var(--text-faint);
      font-size: 0.5rem;
      text-decoration: none;
      text-overflow: ellipsis;
      white-space: nowrap;
    }
    .semantic-passport-repository:hover,
    .semantic-passport-repository:focus-visible { color: var(--backend-stroke); }
    .semantic-passport-evidence-links { display: grid; gap: 0.22rem; }
    .semantic-passport-source {
      display: grid;
      grid-template-columns: minmax(0, 1fr) auto;
      gap: 0.15rem 0.45rem;
      align-items: center;
      padding: 0.34rem 0.4rem;
      border: 1px solid transparent;
      border-radius: 0.38rem;
      color: var(--text-muted);
      text-decoration: none;
    }
    a.semantic-passport-source:hover,
    a.semantic-passport-source:focus-visible {
      border-color: color-mix(in srgb, var(--backend-stroke) 42%, transparent);
      background: color-mix(in srgb, var(--backend-fill) 32%, transparent);
      color: var(--text);
    }
    .semantic-passport-source strong {
      overflow: hidden;
      font-size: 0.5625rem;
      text-overflow: ellipsis;
      white-space: nowrap;
    }
    .semantic-passport-source code {
      color: var(--backend-stroke);
      font: inherit;
      font-size: 0.5rem;
    }
    .semantic-passport-source small {
      grid-column: 1 / -1;
      overflow: hidden;
      color: var(--text-faint);
      font-size: 0.5rem;
      text-overflow: ellipsis;
      white-space: nowrap;
    }
    .relationship-lens-summary {
      display: block;
      margin-top: 0.12rem;
      color: var(--text-faint);
      font-size: 0.5625rem;
    }
    .semantic-passport-reach {
      display: grid;
      gap: 0.28rem;
      margin-top: 0.52rem;
      padding-top: 0.48rem;
      border-top: 1px solid color-mix(in srgb, var(--toolbar-border) 76%, transparent);
    }
    .semantic-passport-reach[hidden] { display: none; }
    .semantic-passport-reach-label {
      color: var(--text-faint);
      font-size: 0.5rem;
      font-weight: 800;
      letter-spacing: 0.1em;
      text-transform: uppercase;
    }
    .semantic-passport-reach-actions {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 0.25rem;
    }
    .semantic-passport-reach-actions button {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 0.5rem;
      min-width: 0;
      min-height: 2rem;
      padding: 0.32rem 0.42rem;
      border: 1px solid color-mix(in srgb, var(--toolbar-border) 86%, transparent);
      background: color-mix(in srgb, var(--panel) 70%, transparent);
      color: var(--text-muted);
      text-align: left;
    }
    .semantic-passport-reach-actions button:hover:not(:disabled),
    .semantic-passport-reach-actions button:focus-visible {
      border-color: color-mix(in srgb, var(--frontend-stroke) 62%, var(--toolbar-border));
      color: var(--text);
    }
    .semantic-passport-reach-actions button:focus-visible {
      outline: 2px solid var(--frontend-stroke);
      outline-offset: 1px;
    }
    .semantic-passport-reach-actions button:disabled {
      cursor: default;
      opacity: 0.5;
    }
    .semantic-passport-reach-actions button[aria-pressed="true"] {
      border-color: color-mix(in srgb, var(--reach-color, var(--frontend-stroke)) 72%, var(--toolbar-border));
      background: color-mix(in srgb, var(--reach-fill, var(--frontend-fill)) 48%, transparent);
      color: var(--text);
    }
    #btn-reach-upstream {
      --reach-color: var(--database-stroke);
      --reach-fill: var(--database-fill);
    }
    #btn-reach-downstream {
      --reach-color: var(--backend-stroke);
      --reach-fill: var(--backend-fill);
    }
    .semantic-passport-reach-actions strong {
      color: var(--reach-color, var(--frontend-stroke));
      font-size: 0.625rem;
    }
    .semantic-passport-reach-status {
      color: var(--text-faint);
      font-size: 0.525rem;
      line-height: 1.4;
    }
    .semantic-passport-reach-status[hidden] { display: none; }
    .relationship-lens-list {
      max-height: min(18rem, 46vh);
      overflow: auto;
      padding: 0.4rem;
      scrollbar-width: thin;
      scrollbar-color: var(--frontend-stroke) transparent;
    }
    .relationship-lens-list::-webkit-scrollbar { width: 4px; }
    .relationship-lens-list::-webkit-scrollbar-thumb {
      border-radius: 999px;
      background: color-mix(in srgb, var(--frontend-stroke) 68%, transparent);
    }
    .relationship-lens-group + .relationship-lens-group { margin-top: 0.35rem; }
    .relationship-lens-group-title {
      display: block;
      padding: 0.24rem 0.38rem 0.16rem;
      color: var(--text-faint);
      font-size: 0.5rem;
      font-weight: 800;
      letter-spacing: 0.12em;
      text-transform: uppercase;
    }
    .relationship-lens-row {
      display: grid;
      grid-template-columns: 2.1rem minmax(0, 1fr);
      gap: 0.06rem 0.45rem;
      width: 100%;
      padding: 0.45rem 0.5rem !important;
      text-align: left;
    }
    .relationship-lens-row:hover,
    .relationship-lens-row:focus-visible,
    .relationship-lens-row[data-preview-active="true"] {
      background: var(--toolbar-hover);
      box-shadow: inset 2px 0 0 var(--frontend-stroke);
    }
    .relationship-lens-row:focus-visible {
      outline: 2px solid var(--frontend-stroke);
      outline-offset: -2px;
    }
    .relationship-lens-direction {
      grid-row: 1 / 3;
      align-self: center;
      color: var(--frontend-stroke);
      font-size: 0.5rem;
      font-weight: 800;
      letter-spacing: 0.08em;
    }
    .relationship-lens-row[data-direction="in"] .relationship-lens-direction { color: var(--database-stroke); }
    .relationship-lens-row[data-direction="loop"] .relationship-lens-direction { color: var(--security-stroke); }
    .relationship-lens-row strong {
      overflow: hidden;
      color: var(--text);
      font-size: 0.6875rem;
      text-overflow: ellipsis;
      white-space: nowrap;
    }
    .relationship-lens-row small {
      overflow: hidden;
      color: var(--text-faint);
      font-size: 0.5625rem;
      text-overflow: ellipsis;
      white-space: nowrap;
    }
    .relationship-lens-empty {
      margin: 0;
      padding: 0.75rem;
      color: var(--text-faint);
      font-size: 0.625rem;
      text-align: center;
    }

    /* Diagram Guide keeps the artifact's growing reader vocabulary
       discoverable without widening the permanent control bar. It derives
       honest counts at runtime and delegates every action to an existing
       production interaction instead of creating a second command system. */
    .diagram-guide {
      position: absolute;
      top: 1rem;
      right: 1rem;
      z-index: 26;
      width: min(32rem, calc(100% - 2rem));
      max-height: min(42rem, calc(100% - 2rem));
      overflow: auto;
      border: 1px solid color-mix(in srgb, var(--cloud-stroke) 58%, var(--toolbar-border));
      border-radius: 0.82rem;
      background:
        linear-gradient(135deg, color-mix(in srgb, var(--cloud-fill) 32%, transparent), transparent 42%),
        var(--toolbar-menu-bg);
      color: var(--toolbar-text);
      box-shadow: 0 22px 64px rgba(0, 0, 0, 0.4);
      backdrop-filter: blur(18px);
      animation: archify-guide-in 180ms cubic-bezier(0.22, 1, 0.36, 1);
    }
    .diagram-guide[hidden] { display: none; }
    html[data-preset="blueprint"] .diagram-guide { border-radius: 0.28rem; }
    .diagram-guide-head {
      display: grid;
      grid-template-columns: minmax(0, 1fr) auto;
      align-items: start;
      gap: 1rem;
      padding: 0.82rem 0.9rem 0.68rem;
      border-bottom: 1px solid var(--toolbar-border);
    }
    .diagram-guide-eyebrow {
      display: block;
      color: var(--cloud-stroke);
      font-size: 0.5rem;
      font-weight: 800;
      letter-spacing: 0.16em;
      text-transform: uppercase;
    }
    .diagram-guide-title {
      display: block;
      margin-top: 0.16rem;
      color: var(--text);
      font-size: 0.86rem;
      letter-spacing: -0.02em;
    }
    .diagram-guide-close {
      width: 1.8rem;
      height: 1.8rem;
      border: 0;
      border-radius: 0.35rem;
      background: transparent;
      color: var(--toolbar-text);
      font: inherit;
      font-size: 1rem;
      cursor: pointer;
    }
    .diagram-guide-close:hover,
    .diagram-guide-close:focus-visible { background: var(--toolbar-hover); }
    .diagram-guide-stats {
      display: flex;
      align-items: center;
      gap: 0.5rem;
      margin: 0;
      padding: 0.54rem 0.9rem;
      border-bottom: 1px solid color-mix(in srgb, var(--toolbar-border) 74%, transparent);
      color: var(--text-faint);
      font-size: 0.56rem;
      letter-spacing: 0.025em;
    }
    .diagram-guide-stats::before {
      content: '';
      width: 0.42rem;
      height: 0.42rem;
      flex: none;
      border-radius: 50%;
      background: var(--backend-stroke);
      box-shadow: 0 0 10px color-mix(in srgb, var(--backend-stroke) 72%, transparent);
    }
    .diagram-guide-actions {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 0.38rem;
      padding: 0.62rem;
    }
    .diagram-guide-action {
      --guide-accent: var(--frontend-stroke);
      display: grid;
      grid-template-columns: auto minmax(0, 1fr) auto;
      align-items: center;
      gap: 0.55rem;
      min-height: 4.15rem;
      padding: 0.55rem 0.58rem;
      border: 1px solid color-mix(in srgb, var(--guide-accent) 22%, var(--toolbar-border));
      border-radius: 0.55rem;
      background: color-mix(in srgb, var(--panel) 78%, transparent);
      color: var(--toolbar-text);
      font: inherit;
      text-align: left;
      cursor: pointer;
      transition: border-color 140ms ease, background 140ms ease, transform 140ms ease;
    }
    .diagram-guide-action[data-guide-action="route"] { --guide-accent: var(--backend-stroke); }
    .diagram-guide-action[data-guide-action="map"] { --guide-accent: var(--database-stroke); }
    .diagram-guide-action[data-guide-action="lens"] { --guide-accent: var(--messagebus-stroke); }

    .diagram-guide-action[data-guide-action="present"] {
      --guide-accent: var(--cloud-stroke);
    }
    .diagram-guide-action:hover,
    .diagram-guide-action:focus-visible {
      border-color: color-mix(in srgb, var(--guide-accent) 76%, var(--toolbar-border));
      background: color-mix(in srgb, var(--guide-accent) 9%, var(--panel));
      transform: translateY(-1px);
    }
    .diagram-guide-action:focus-visible,
    .diagram-guide-close:focus-visible {
      outline: 2px solid var(--cloud-stroke);
      outline-offset: 1px;
    }
    .diagram-guide-action:disabled {
      opacity: 0.42;
      cursor: default;
      transform: none;
    }
    .diagram-guide-index {
      display: grid;
      place-items: center;
      width: 1.65rem;
      height: 1.65rem;
      border: 1px solid color-mix(in srgb, var(--guide-accent) 64%, var(--toolbar-border));
      border-radius: 0.35rem;
      color: var(--guide-accent);
      font-size: 0.5rem;
      font-weight: 800;
      letter-spacing: 0.06em;
    }
    .diagram-guide-action-copy { min-width: 0; }
    .diagram-guide-action strong {
      display: block;
      overflow: hidden;
      color: var(--text);
      font-size: 0.66rem;
      text-overflow: ellipsis;
      white-space: nowrap;
    }
    .diagram-guide-action small {
      display: -webkit-box;
      margin-top: 0.18rem;
      overflow: hidden;
      color: var(--text-faint);
      font-size: 0.5rem;
      line-height: 1.35;
      -webkit-box-orient: vertical;
      -webkit-line-clamp: 2;
    }
    .diagram-guide kbd {
      align-self: start;
      min-width: 1.45rem;
      padding: 0.12rem 0.3rem;
      border: 1px solid var(--toolbar-border);
      border-radius: 0.25rem;
      color: var(--text-faint);
      font: inherit;
      font-size: 0.5rem;
      text-align: center;
    }
    .diagram-guide-shortcuts {
      display: flex;
      flex-wrap: wrap;
      gap: 0.34rem 0.62rem;
      padding: 0.58rem 0.9rem 0.68rem;
      border-top: 1px solid var(--toolbar-border);
      color: var(--text-faint);
      font-size: 0.5rem;
    }
    .diagram-guide-shortcuts span {
      display: inline-flex;
      align-items: center;
      gap: 0.28rem;
      white-space: nowrap;
    }
    .diagram-guide-feedback {
      min-height: 1rem;
      margin: -0.18rem 0.9rem 0.62rem;
      color: var(--security-stroke);
      font-size: 0.5rem;
    }
    .diagram-guide-feedback:empty { display: none; }
    @keyframes archify-guide-in {
      from { opacity: 0; transform: translateY(-5px) scale(0.985); }
      to { opacity: 1; transform: translateY(0) scale(1); }
    }

    .node-finder {
      position: absolute;
      top: 1rem;
      left: 1rem;
      z-index: 24;
      display: flex;
      flex-direction: column;
      width: min(22rem, calc(100% - 2rem));
      max-height: calc(100% - 2rem);
      overflow: hidden;
      border: 1px solid var(--toolbar-border);
      border-radius: 0.85rem;
      background: var(--toolbar-menu-bg);
      color: var(--toolbar-text);
      box-shadow: 0 6px 8px rgba(0, 0, 0, 0.22);
      backdrop-filter: blur(16px);
    }
    .node-finder[hidden] { display: none; }
    .node-finder[data-context="route-source"] {
      border-color: color-mix(in srgb, var(--frontend-stroke) 68%, var(--toolbar-border));
    }
    .node-finder[data-context="route-target"] {
      border-color: color-mix(in srgb, var(--security-stroke) 68%, var(--toolbar-border));
    }
    html[data-preset="blueprint"] .node-finder { border-radius: 0.3rem; }
    .node-finder-head {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 1rem;
      padding: 0.7rem 0.8rem 0.45rem;
    }
    .node-finder-head strong {
      color: var(--text);
      font-size: 0.6875rem;
      letter-spacing: 0.08em;
      text-transform: uppercase;
    }
    .node-finder[data-context="route-source"] .node-finder-head strong { color: var(--frontend-stroke); }
    .node-finder[data-context="route-target"] .node-finder-head strong { color: var(--security-stroke); }
    .node-finder-close {
      width: 1.75rem;
      height: 1.75rem;
      border: 0;
      border-radius: 0.35rem;
      background: transparent;
      color: var(--toolbar-text);
      font: inherit;
      font-size: 1rem;
      cursor: pointer;
    }
    .node-finder-close:hover,
    .node-finder-close:focus-visible { background: var(--toolbar-hover); }
    .node-finder-close:focus-visible,
    .node-finder-result:focus-visible {
      outline: 2px solid var(--frontend-stroke);
      outline-offset: -2px;
    }
    .node-finder-search {
      display: grid;
      grid-template-columns: auto minmax(0, 1fr) auto;
      align-items: center;
      gap: 0.55rem;
      margin: 0 0.55rem 0.55rem;
      padding: 0 0.7rem;
      min-height: 2.6rem;
      border: 1px solid var(--toolbar-border);
      border-radius: 0.55rem;
      background: color-mix(in srgb, var(--panel) 78%, transparent);
      transition: border-color 160ms ease-out, box-shadow 160ms ease-out;
    }
    html[data-preset="blueprint"] .node-finder-search { border-radius: 0.18rem; }
    .node-finder-search > span { color: var(--frontend-stroke); font-size: 0.875rem; }
    .node-finder-search:focus-within {
      border-color: var(--frontend-stroke);
      box-shadow: 0 0 0 2px color-mix(in srgb, var(--frontend-stroke) 20%, transparent);
    }
    .node-finder-input {
      appearance: none;
      width: 100%;
      min-width: 0;
      border: 0;
      outline: 0;
      background: transparent;
      color: var(--text);
      font: inherit;
      font-size: 0.75rem;
    }
    .node-finder-input:focus-visible { outline: none; }
    .node-finder-input::placeholder { color: var(--text-faint); }
    .node-finder kbd {
      padding: 0.1rem 0.32rem;
      border: 1px solid var(--toolbar-border);
      border-radius: 0.25rem;
      color: var(--text-faint);
      font: inherit;
      font-size: 0.5625rem;
    }
    .node-finder-results {
      display: grid;
      flex: 1 1 auto;
      gap: 0;
      min-height: 0;
      max-height: min(18rem, 48vh);
      margin: 0 0.55rem 0.45rem;
      padding: 0;
      overflow-y: auto;
      overscroll-behavior: contain;
      border: 1px solid color-mix(in srgb, var(--toolbar-border) 78%, transparent);
      border-radius: 0.55rem;
      background: color-mix(in srgb, var(--panel) 54%, transparent);
      scroll-padding-block: 0.25rem;
      scrollbar-width: thin;
    }
    html[data-preset="blueprint"] .node-finder-results { border-radius: 0.18rem; }
    .node-finder-result {
      display: grid;
      grid-template-columns: minmax(0, 1fr) auto;
      gap: 0.2rem 0.75rem;
      width: 100%;
      min-height: 3.25rem;
      padding: 0.58rem 0.65rem;
      border: 0;
      border-radius: 0;
      background: transparent;
      color: var(--text);
      font: inherit;
      text-align: left;
      cursor: pointer;
      transition: background-color 160ms ease-out;
    }
    .node-finder-result:not(:last-child) {
      border-bottom: 1px solid color-mix(in srgb, var(--toolbar-border) 62%, transparent);
    }
    .node-finder-result:hover,
    .node-finder-result:focus-visible {
      position: relative;
      z-index: 1;
      background: color-mix(in srgb, var(--frontend-fill) 48%, var(--toolbar-hover));
    }
    .node-finder-result strong {
      overflow: hidden;
      font-size: 0.75rem;
      line-height: 1.25;
      text-overflow: ellipsis;
      white-space: nowrap;
    }
    .node-finder-result small {
      grid-column: 1 / -1;
      overflow: hidden;
      color: var(--text-faint);
      font-size: 0.5625rem;
      letter-spacing: 0.015em;
      text-overflow: ellipsis;
      white-space: nowrap;
    }
    .node-finder-result em {
      align-self: center;
      color: var(--frontend-stroke);
      font-size: 0.625rem;
      font-style: normal;
    }
    .node-finder[data-context^="route-"] .node-finder-result em {
      padding: 0.1rem 0.3rem;
      border: 1px solid color-mix(in srgb, currentColor 52%, transparent);
      border-radius: 999px;
      font-size: 0.5rem;
      font-weight: 800;
      letter-spacing: 0.05em;
      text-transform: uppercase;
    }
    .node-finder[data-context="route-target"] .node-finder-result em { color: var(--security-stroke); }
    .node-finder-empty {
      padding: 1.1rem 0.75rem 1.25rem;
      color: var(--text-faint);
      font-size: 0.6875rem;
      text-align: center;
    }
    .node-finder-status {
      margin: 0;
      padding: 0.1rem 0.8rem 0.65rem;
      color: var(--text-faint);
      font-size: 0.5625rem;
    }

    .cards {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(min(15rem, 100%), 1fr));
      gap: 1rem;
      margin-top: 2rem;
    }

    .card {
      background: var(--panel);
      border-radius: 0.75rem;
      border: 1px solid var(--panel-border);
      padding: 1.125rem 1.25rem;
    }

    html[data-preset="signal-flow"] .card {
      background: linear-gradient(145deg, rgba(10, 24, 43, 0.86), rgba(5, 12, 24, 0.92));
      box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.035);
    }
    html[data-preset="signal-flow"][data-theme="light"] .card {
      background: linear-gradient(145deg, rgba(255, 255, 255, 0.92), rgba(237, 246, 250, 0.9));
      box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.82), 0 12px 32px rgba(45, 78, 99, 0.08);
    }

    /* Preserve the one-screen guarantee on ordinary laptop displays. The
       high-screen expansion above must not trade a fuller canvas for page
       scrolling at 900–1080px heights. */
    @media (min-width: 768px) and (max-height: 1100px) {
      .header { margin-bottom: 1rem; }
      .diagram-container {
        padding: 0.875rem;
        padding-bottom: calc(0.875rem + var(--archify-nav-reserve));
      }
      .cards { margin-top: 1rem; }
      .card { padding: 1rem; }
    }
    @media (min-width: 768px) and (max-height: 920px) {
      body { padding-block: 1.25rem; }
      body { --archify-page-top: 1.25rem; }
      .header { margin-bottom: 0.875rem; }
      .cards { margin-top: 0.75rem; }
      html[data-nav-stage-rail="true"] body { padding-block: 0.375rem; }
      /* Align the fixed toolbar with the compact title row. Reserve its hit area
         above the guide without taking extra height from a fitted diagram. */
      html[data-nav-stage-rail="true"] .toolbar { top: 0.25rem; }
      html[data-nav-stage-rail="true"] .header { min-height: 2.625rem; margin-bottom: 0.5rem; }
      html[data-nav-stage-rail="true"] .diagram-container[data-nav-stage-rail="true"] { padding-top: 0.5rem; }
      html[data-nav-stage-rail="true"] .cards { margin-top: 0.375rem; }
    }

    html[data-preset="blueprint"] .card {
      position: relative;
      border-color: var(--panel-border);
      border-radius: 0.3rem;
      background: var(--panel);
      box-shadow: none;
    }
    html[data-preset="blueprint"] .card::before {
      content: "";
      position: absolute;
      top: -1px;
      left: 1rem;
      width: 2.5rem;
      border-top: 2px solid var(--frontend-stroke);
    }

    html[data-preset="editorial"] .card {
      position: relative;
      border-radius: 0.28rem;
      background: var(--panel);
      box-shadow: 0 10px 28px color-mix(in srgb, #000 10%, transparent);
    }
    html[data-preset="editorial"] .card::before {
      position: absolute;
      top: -1px;
      left: 1.25rem;
      width: 3.25rem;
      border-top: 3px solid var(--arrow-emphasis);
      content: "";
    }
    html[data-preset="editorial"] .card-dot { border-radius: 0; transform: rotate(45deg) scale(0.78); }

    /* Summary rail: the reader measures the viewport and enables it only when the
       diagram keeps its readable width beside the notes. */
    .reader-rail { display: contents; }
    html[data-reader-rail="true"] .container {
      display: grid;
      grid-template-columns: minmax(0, 1fr) var(--archify-rail-width);
      grid-auto-flow: row dense;
      column-gap: var(--archify-rail-gap);
      align-items: start;
    }
    html[data-reader-rail="true"] .container > .header { grid-column: 1 / -1; }
    html[data-reader-rail="true"] .container > .diagram-container { grid-column: 1; }
    /* The rail is at least the diagram's height and may run on to the viewport
       floor (--archify-rail-max, set by the reader); past that, notes scroll and
       the index keeps a usable share instead of collapsing to its header. */
    html[data-reader-rail="true"] .reader-rail {
      display: flex;
      flex-direction: column;
      grid-column: 2;
      align-self: stretch;
      min-height: 0;
      max-height: var(--archify-rail-max, none);
    }
    html:is([data-reader-rail="true"], [data-reader-rail="overlay"]) .cards:empty { display: none; }
    html:is([data-reader-rail="true"], [data-reader-rail="overlay"]) .cards {
      display: flex;
      flex: 0 1 auto;
      flex-direction: column;
      gap: 0;
      min-height: 0;
      margin-top: 0;
      padding: 0.125rem 0 0;
      overflow-y: auto;
      scrollbar-width: none;
      -webkit-mask-image: linear-gradient(to bottom, #000 calc(100% - 1.25rem), transparent);
      mask-image: linear-gradient(to bottom, #000 calc(100% - 1.25rem), transparent);
    }
    html:is([data-reader-rail="true"], [data-reader-rail="overlay"]) .cards::-webkit-scrollbar { display: none; }
    html:is([data-reader-rail="true"], [data-reader-rail="overlay"]) .cards .card { flex: none; }
    html:is([data-reader-rail="true"], [data-reader-rail="overlay"]) .cards .card {
      padding: 0 0.25rem 1.125rem;
      border: 0;
      border-radius: 0;
      background: transparent;
      box-shadow: none;
    }
    html:is([data-reader-rail="true"], [data-reader-rail="overlay"]) .cards .card + .card {
      padding-top: 1.125rem;
      border-top: 1px solid var(--panel-border);
    }
    html:is([data-reader-rail="true"], [data-reader-rail="overlay"]) .cards .card::before { display: none; }
    html:is([data-reader-rail="true"], [data-reader-rail="overlay"]) .card-header { gap: 0.55rem; margin-bottom: 0.45rem; }
    html:is([data-reader-rail="true"], [data-reader-rail="overlay"]) .cards .card h3 { font-size: 0.875rem; letter-spacing: -0.005em; }
    html:is([data-reader-rail="true"], [data-reader-rail="overlay"]) .cards .card ul { font-size: 0.8125rem; line-height: 1.6; }

    .node-outline { display: none; }
    html:is([data-reader-rail="true"], [data-reader-rail="overlay"]) .node-outline:not([hidden]) {
      display: flex;
      flex: 1 0 min(13rem, 55%);
      flex-direction: column;
      min-height: 0;
      margin-top: 0.25rem;
      overflow: hidden;
      border-top: 1px solid var(--panel-border);
    }
    html:is([data-reader-rail="true"], [data-reader-rail="overlay"]) .cards:empty + .node-outline:not([hidden]) { margin-top: 0; border-top: 0; }
    /* Collapsed: only the reveal control remains, so the diagram takes the width. */
    html[data-reader-rail="collapsed"] .reader-rail { display: none; }
    /* Overlay: a drawer for diagrams whose readable floor leaves no room to dock. */
    html[data-reader-rail="overlay"] .reader-rail {
      position: fixed;
      z-index: 150;
      top: 1rem;
      right: 1rem;
      bottom: 1rem;
      display: flex;
      flex-direction: column;
      width: var(--archify-rail-width);
      padding: 0.75rem 1rem 0.5rem;
      border: 1px solid color-mix(in srgb, var(--panel-border) 90%, transparent);
      border-radius: 1rem;
      background: var(--toolbar-menu-bg);
      box-shadow: 0 1px 2px rgba(15, 23, 42, 0.06), 0 28px 64px -18px rgba(15, 23, 42, 0.38);
      animation: rail-drawer-in 0.2s cubic-bezier(0.22, 1, 0.36, 1);
    }
    @keyframes rail-drawer-in {
      from { opacity: 0; transform: translateX(0.75rem); }
      to { opacity: 1; transform: translateX(0); }
    }
    /* Bottom (default): the notes keep their full-width card row and the index
       follows as one panel whose groups flow into columns, so nothing scrolls
       inside it. The placement toggle sits in the index header. */
    html[data-reader-rail="bottom"] .reader-rail {
      display: grid;
      grid-template-areas: "cards" "index";
      grid-template-columns: minmax(0, 1fr);
      row-gap: 1rem;
      margin-top: 1rem;
    }
    html[data-reader-rail="bottom"] .cards { grid-area: cards; margin-top: 0; }
    html[data-reader-rail="bottom"] .cards:empty { display: none; }
    html[data-reader-rail="bottom"] .node-outline:not([hidden]) {
      display: block;
      grid-area: index;
      padding: 0 1.25rem 0.75rem;
      border: 1px solid var(--panel-border);
      border-radius: 0.75rem;
      background: var(--panel);
    }
    html[data-reader-rail="bottom"] .reader-rail > .rail-controls {
      z-index: 1;
      grid-area: index;
      align-self: start;
      justify-self: end;
      margin: 0.625rem 0.625rem 0 0;
    }
    html[data-reader-rail="bottom"] .node-outline-head { padding: 1rem 2.5rem 0.375rem 0.25rem; }
    html[data-reader-rail="bottom"] .node-outline-list {
      columns: 15rem;
      column-gap: 1.75rem;
      padding: 0;
      overflow: visible;
      -webkit-mask-image: none;
      mask-image: none;
    }
    /* Named groups stay whole; a single unnamed group may split across columns,
       where a continuous spine would read as a broken line. */
    html[data-reader-rail="bottom"] .node-outline-group + .node-outline-group { margin-top: 0; }
    html[data-reader-rail="bottom"] .node-outline-group:has(> .node-outline-heading) { break-inside: avoid; padding-bottom: 0.25rem; }
    html[data-reader-rail="bottom"] .node-outline-group:not(:has(> .node-outline-heading)) > ul::before { display: none; }
    html[data-reader-rail="bottom"] .node-outline-group li { break-inside: avoid; }
    .rail-controls { display: none; }
    html:is([data-reader-rail="true"], [data-reader-rail="overlay"], [data-reader-rail="bottom"]) .rail-controls {
      display: flex;
      flex: none;
      justify-content: flex-end;
      gap: 0.125rem;
      margin: -0.25rem -0.25rem 0.25rem 0;
    }
    .rail-control {
      display: inline-grid;
      place-items: center;
      width: 1.875rem;
      height: 1.875rem;
      border: 0;
      border-radius: 0.5rem;
      background: transparent;
      color: var(--text-faint);
      cursor: pointer;
      transition: background 0.14s ease, color 0.14s ease;
    }
    .rail-control[hidden] { display: none; }
    .rail-control:hover,
    .rail-control:focus-visible { color: var(--text); background: color-mix(in srgb, var(--text) 6%, transparent); }
    .rail-control:focus-visible { outline: 1.5px solid color-mix(in srgb, var(--frontend-stroke) 60%, transparent); outline-offset: -1.5px; }
    .rail-control-icon,
    .rail-reveal-icon {
      width: 1rem;
      height: 1rem;
      background: currentColor;
      -webkit-mask: var(--rail-glyph) center / contain no-repeat;
      mask: var(--rail-glyph) center / contain no-repeat;
    }
    /* Panel glyphs: a frame with the panel drawn on the side it moves to. */
    .rail-control-icon.placement,
    #rail-placement[data-placement="right"] .rail-control-icon { --rail-glyph: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cg fill='none' stroke='black' stroke-width='1.6'%3E%3Crect x='2.8' y='3.8' width='14.4' height='12.4' rx='2'/%3E%3Cpath d='M2.8 12h14.4'/%3E%3C/g%3E%3C/svg%3E"); }
    #rail-placement[data-placement="bottom"] .rail-control-icon { --rail-glyph: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cg fill='none' stroke='black' stroke-width='1.6'%3E%3Crect x='2.8' y='3.8' width='14.4' height='12.4' rx='2'/%3E%3Cpath d='M12.6 3.8v12.4'/%3E%3C/g%3E%3C/svg%3E"); }
    .rail-control-icon.collapse { --rail-glyph: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='m8 5.5 4.5 4.5L8 14.5' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); }
    .rail-reveal-icon { --rail-glyph: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cg fill='none' stroke='black' stroke-width='1.6'%3E%3Crect x='2.8' y='3.8' width='14.4' height='12.4' rx='2'/%3E%3Cpath d='M12.6 3.8v12.4M14.4 7.2h1M14.4 9.6h1M14.4 12h1'/%3E%3C/g%3E%3C/svg%3E"); }
    .rail-reveal[hidden] { display: none; }
    /* The collapsed rail leaves one quiet pill in the canvas corner. */
    .rail-reveal {
      position: absolute;
      z-index: 13;
      top: 0.75rem;
      right: 0.75rem;
      display: inline-flex;
      align-items: center;
      gap: 0.45rem;
      min-height: 2rem;
      padding: 0 0.75rem 0 0.625rem;
      border: 1px solid color-mix(in srgb, var(--panel-border) 85%, transparent);
      border-radius: 999px;
      background: color-mix(in srgb, var(--panel) 86%, transparent);
      color: var(--text-muted);
      box-shadow: 0 1px 2px rgba(15, 23, 42, 0.05), 0 8px 20px -12px rgba(15, 23, 42, 0.28);
      backdrop-filter: blur(12px);
      font: inherit;
      font-size: 0.75rem;
      font-weight: 500;
      cursor: pointer;
      transition: color 0.14s ease, background 0.14s ease;
    }
    .rail-reveal:hover,
    .rail-reveal:focus-visible { color: var(--text); background: var(--panel); }
    .rail-reveal:focus-visible { outline: 1.5px solid color-mix(in srgb, var(--frontend-stroke) 60%, transparent); outline-offset: 2px; }
    html[data-motion="still"] .reader-rail { animation: none !important; }
    .node-outline-head {
      display: flex;
      align-items: center;
      gap: 0.5rem;
      padding: 1.125rem 0.25rem 0.375rem;
    }
    .node-outline-head strong {
      color: var(--text);
      font-size: 0.875rem;
      font-weight: 600;
      letter-spacing: -0.005em;
    }
    .node-outline-count {
      min-width: 1.35rem;
      padding: 0.1rem 0.4rem;
      border-radius: 999px;
      background: color-mix(in srgb, var(--text) 6%, transparent);
      color: var(--text-muted);
      font-size: 0.6875rem;
      font-weight: 600;
      line-height: 1.3;
      text-align: center;
      font-variant-numeric: tabular-nums;
    }
    .node-outline-list {
      flex: 1 1 auto;
      min-height: 0;
      margin: 0 -0.375rem;
      padding: 0 0 1.25rem;
      overflow-y: auto;
      list-style: none;
      scrollbar-width: none;
      -webkit-mask-image: linear-gradient(to bottom, #000 calc(100% - 2rem), transparent);
      mask-image: linear-gradient(to bottom, #000 calc(100% - 2rem), transparent);
    }
    .node-outline-list::-webkit-scrollbar { display: none; }
    .node-outline-group + .node-outline-group { margin-top: 0.25rem; }
    .node-outline-group > ul {
      position: relative;
      list-style: none;
    }
    /* A quiet spine ties each group's swatches together like a lane. */
    .node-outline-group > ul::before {
      position: absolute;
      top: 0.95rem;
      bottom: 0.95rem;
      left: calc(0.625rem + 0.3125rem - 0.5px);
      width: 1px;
      background: var(--panel-border);
      content: "";
    }
    .node-outline-heading {
      display: flex;
      align-items: baseline;
      justify-content: space-between;
      padding: 0.7rem 0.625rem 0.25rem;
      color: var(--text-faint);
      font-size: 0.6875rem;
      font-weight: 600;
      letter-spacing: 0.02em;
    }
    .node-outline-heading small {
      color: var(--text-dim);
      font-size: 0.6875rem;
      font-weight: 500;
      font-variant-numeric: tabular-nums;
    }
    /* The rail frees the vertical budget, so compact viewports keep the normal
       title spacing instead of the stacked layout's tight stage rail. */
    html[data-reader-rail]:not([data-reader-rail="bottom"]) body { --archify-page-top: 1.5rem; padding-block: 1.5rem; }
    html[data-reader-rail]:not([data-reader-rail="bottom"]) .toolbar { top: calc(var(--archify-page-top) - 0.1875rem); }
    html[data-reader-rail]:not([data-reader-rail="bottom"]) .header { min-height: 0; margin-bottom: 1.125rem; }
    .node-outline-item {
      position: relative;
      display: grid;
      grid-template-columns: 0.625rem minmax(0, auto) minmax(0, 1fr) 0.75rem;
      align-items: center;
      column-gap: 0.625rem;
      width: 100%;
      min-height: 1.95rem;
      padding: 0.28rem 0.5rem 0.28rem 0.625rem;
      border: 0;
      border-radius: 0.5rem;
      background: transparent;
      color: var(--text);
      font: inherit;
      text-align: left;
      cursor: pointer;
      transition: background 0.16s ease;
    }
    /* Trailing chevron hints that a click focuses the node. */
    .node-outline-item::after {
      grid-column: 4;
      width: 0.75rem;
      height: 0.75rem;
      background: currentColor;
      color: var(--text-muted);
      content: "";
      opacity: 0;
      transform: translateX(-3px);
      transition: opacity 0.16s ease, transform 0.16s ease;
      -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='m4.5 3 3 3-3 3' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
      mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='m4.5 3 3 3-3 3' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
    }
    .node-outline-item:hover,
    .node-outline-item:focus-visible,
    .node-outline-item[data-previewing] { background: color-mix(in srgb, var(--text) 4.5%, transparent); }
    .node-outline-item:hover::after,
    .node-outline-item:focus-visible::after { opacity: 0.7; transform: translateX(0); }
    .node-outline-item:focus-visible { outline: 1.5px solid color-mix(in srgb, var(--outline-tone) 60%, transparent); outline-offset: -1.5px; }
    .node-outline-item[aria-current="true"] { background: color-mix(in srgb, var(--outline-tone) 10%, transparent); }
    .node-outline-item[aria-current="true"]::after { opacity: 0; }
    /* Swatches echo the diagram's node cards: tinted fill, hairline stroke. */
    .node-outline-dot {
      width: 0.625rem;
      height: 0.5rem;
      border: 1.25px solid var(--outline-tone);
      border-radius: 0.15rem;
      background: color-mix(in srgb, var(--outline-tone) 16%, var(--bg));
      transition: background 0.16s ease, transform 0.16s ease, box-shadow 0.16s ease;
    }
    .node-outline-item:hover .node-outline-dot,
    .node-outline-item:focus-visible .node-outline-dot,
    .node-outline-item[data-previewing] .node-outline-dot,
    .node-outline-item[aria-current="true"] .node-outline-dot {
      background: var(--outline-tone);
      box-shadow: 0 0 0 3px color-mix(in srgb, var(--outline-tone) 18%, transparent);
      transform: scale(1.08);
    }
    .node-outline-item strong {
      overflow: hidden;
      font-size: 0.8125rem;
      font-weight: 500;
      text-overflow: ellipsis;
      white-space: nowrap;
    }
    .node-outline-item[aria-current="true"] strong { font-weight: 600; }
    .node-outline-item small {
      overflow: hidden;
      color: var(--text-faint);
      font-size: 0.6875rem;
      text-align: right;
      text-overflow: ellipsis;
      white-space: nowrap;
      transition: color 0.16s ease;
    }
    .node-outline-item:hover small,
    .node-outline-item[data-previewing] small,
    .node-outline-item[aria-current="true"] small { color: var(--text-muted); }

    .card-header {
      display: flex;
      align-items: center;
      gap: 0.5rem;
      margin-bottom: 0.625rem;
    }

    .card-dot {
      flex: none;
      width: 8px;
      height: 8px;
      border-radius: 50%;
    }

    .card-dot.cyan     { background: var(--frontend-stroke); }
    .card-dot.emerald  { background: var(--backend-stroke); }
    .card-dot.violet   { background: var(--database-stroke); }
    .card-dot.amber    { background: var(--cloud-stroke); }
    .card-dot.rose     { background: var(--security-stroke); }
    .card-dot.orange   { background: var(--messagebus-stroke); }
    .card-dot.slate    { background: var(--external-stroke); }

    .card h3 { font-size: 0.9375rem; font-weight: 600; line-height: 1.4; color: var(--text); }

    .card ul {
      list-style: none;
      color: var(--text-muted);
      font-size: 0.8125rem;
      line-height: 1.6;
    }

    .card li {
      position: relative;
      margin-bottom: 0.3rem;
      padding-left: 0.9rem;
    }
    .card li:last-child { margin-bottom: 0; }
    /* Hanging markers take the card's tone so wrapped lines align under text. */
    .card li::before {
      position: absolute;
      top: calc(0.8em - 2px);
      left: 0.2rem;
      width: 4px;
      height: 4px;
      border-radius: 50%;
      background: color-mix(in srgb, var(--card-tone, var(--text-muted)) 70%, transparent);
      content: "";
    }
    .card:has(.card-dot.cyan)    { --card-tone: var(--frontend-stroke); }
    .card:has(.card-dot.emerald) { --card-tone: var(--backend-stroke); }
    .card:has(.card-dot.violet)  { --card-tone: var(--database-stroke); }
    .card:has(.card-dot.amber)   { --card-tone: var(--cloud-stroke); }
    .card:has(.card-dot.rose)    { --card-tone: var(--security-stroke); }
    .card:has(.card-dot.orange)  { --card-tone: var(--messagebus-stroke); }
    .card:has(.card-dot.slate)   { --card-tone: var(--external-stroke); }
    .card-dot { box-shadow: 0 0 0 3px color-mix(in srgb, var(--card-tone, transparent) 16%, transparent); }

    /* ==========================================================
       Print stylesheet — hide interactive controls, force light,
       drop the grid so the diagram doesn't waste ink, use landscape
       so wide diagrams fit, pack summary cards into 2 columns to
       avoid an orphan card on a trailing page.
       ========================================================== */
    @page { size: landscape; margin: 1.5cm; }

    @media print {
      /* Force the FULL light palette — including component fills/strokes and
         lane/arrow colors — so printing from dark theme doesn't put neon
         strokes and translucent dark fills on white paper. */
      :root, [data-theme="dark"], [data-theme="light"] {
        --bg: #ffffff;
        --grid: transparent;
        --panel: #ffffff;
        --panel-border: #e2e8f0;
        --text: #0f172a;
        --text-muted: #475569;
        --text-dim: #94a3b8;
        --text-faint: #64748b;
        --mask: #ffffff;
        --lane-fill: rgba(248, 250, 252, 0.65);
        --lane-stroke: #cbd5e1;
        --arrow: #94a3b8;
        --arrow-emphasis: #059669;
        --frontend-fill:    rgba(34, 211, 238, 0.15);
        --frontend-stroke:  #0891b2;
        --backend-fill:     rgba(52, 211, 153, 0.18);
        --backend-stroke:   #059669;
        --database-fill:    rgba(167, 139, 250, 0.2);
        --database-stroke:  #7c3aed;
        --cloud-fill:       rgba(251, 191, 36, 0.18);
        --cloud-stroke:     #d97706;
        --security-fill:    rgba(251, 113, 133, 0.15);
        --security-stroke:  #e11d48;
        --messagebus-fill:  rgba(251, 146, 60, 0.15);
        --messagebus-stroke:#ea580c;
        --external-fill:    rgba(148, 163, 184, 0.18);
        --external-stroke:  #64748b;
      }
      body { background: #ffffff !important; padding: 0; }
      .container { max-width: none; }
      .toolbar, .diagram-nav, .focus-chip, .archify-toast, .no-print { display: none !important; }
      
      .diagram-container, .card { box-shadow: none; border-color: #e2e8f0; }
      .diagram-container { --archify-nav-reserve: 0px !important; }
      html[data-preset="signal-flow"] .diagram-container,
      html[data-preset="signal-flow"] .card { background: #ffffff; }
      .cards { grid-template-columns: 1fr 1fr; }
      /* Ensure elements break sensibly across pages */
      .card { break-inside: avoid; page-break-inside: avoid; }
      .diagram-container { break-inside: avoid; page-break-inside: avoid; }
      .diagram-container svg [data-detail] {
        opacity: 1 !important;
        pointer-events: auto !important;
      }
      .diagram-container svg [data-detail-anchor] { transform: none !important; }
      .diagram-container svg[data-lens-active] [data-node-id],
      .diagram-container svg[data-lens-active] [data-edge-from],
      .diagram-container svg[data-legend-preview-active] [data-node-id],
      .diagram-container svg[data-legend-preview-active] [data-edge-from] {
        opacity: 1 !important;
        filter: none !important;
      }
      [data-legend-bridge-runtime] { display: none !important; }
      .semantic-lens-overlay { display: none !important; }
      .relationship-hit-overlay { display: none !important; }
      .relationship-pulse-overlay { display: none !important; }
      .route-probe-overlay, .route-journey-overlay { display: none !important; }
      .diagram-container svg[data-focus-active] [data-node-id],
      .diagram-container svg[data-focus-active] [data-edge-from],
      .diagram-container svg[data-focus-active] [data-graph-role="automatic-crossover-underlay"],
      .diagram-container svg[data-reach-active] [data-node-id],
      .diagram-container svg[data-reach-active] [data-edge-from],
      .diagram-container svg[data-reach-active] [data-graph-role="automatic-crossover-underlay"],
      .diagram-container svg[data-route-active] [data-node-id],
      .diagram-container svg[data-route-active] [data-edge-from],
      .diagram-container svg[data-route-active] [data-graph-role="automatic-crossover-underlay"] {
        opacity: 1 !important;
        filter: none !important;
        animation: none !important;
      }
      h1, .subtitle { color: #0f172a; }
    }

    /* ==========================================================
       TOOLBAR (theme toggle + export menu)
       ========================================================== */
    /* The toolbar tracks the centered reader column and the title row, so
       an adaptive narrow reader does not leave its controls stranded at the
       viewport edge. */
    .toolbar {
      position: absolute;
      top: var(--archify-page-top);
      right: max(1rem, calc((100vw - min(100vw - 4rem, var(--archify-reader-width, 1440px))) / 2));
      display: flex;
      align-items: center;
      gap: 0.125rem;
      padding: 0;
      border: 0;
      background: transparent;
      box-shadow: none;
      z-index: 100;
    }
    /* Ghost controls keep a 44px hit area while the visible pill stays compact;
       Export is the one primary action. */
    .toolbar button {
      position: relative;
      isolation: isolate;
      background: transparent;
      color: var(--text-muted);
      border: 0;
      padding: 0.5rem 0.75rem;
      border-radius: 0.5625rem;
      font-family: inherit;
      font-size: 0.8125rem;
      font-weight: 500;
      cursor: pointer;
      white-space: nowrap;
      box-shadow: none;
      transition: color 0.15s;
      display: inline-flex;
      align-items: center;
      gap: 0.4rem;
      min-height: 2.75rem;
    }
    .toolbar button::before {
      position: absolute;
      z-index: -1;
      inset: 0.375rem 0;
      border-radius: 0.5rem;
      background: transparent;
      content: "";
      transition: background 0.15s, box-shadow 0.15s;
    }
    .toolbar button:hover { color: var(--text); }
    .toolbar button:hover::before { background: color-mix(in srgb, var(--text) 6%, transparent); }
    .toolbar button[aria-expanded="true"],
    .toolbar button[aria-pressed="true"]:not(#btn-theme) { color: var(--text); }
    .toolbar button[aria-expanded="true"]::before,
    .toolbar button[aria-pressed="true"]:not(#btn-theme)::before {
      background: color-mix(in srgb, var(--text) 8%, transparent);
    }
    .toolbar #btn-export {
      margin-left: 0.375rem;
      padding-right: 0.95rem;
      padding-left: 1rem;
      color: var(--bg);
      font-weight: 550;
    }
    .toolbar #btn-export::before {
      background: var(--text);
      box-shadow: 0 1px 2px rgba(15, 23, 42, 0.12), 0 6px 16px -8px rgba(15, 23, 42, 0.4);
    }
    .toolbar #btn-export:hover,
    .toolbar #btn-export[aria-expanded="true"] { color: var(--bg); }
    .toolbar #btn-export:hover::before,
    .toolbar #btn-export[aria-expanded="true"]::before { background: color-mix(in srgb, var(--text) 86%, var(--bg)); }
    .toolbar button:focus-visible {
      outline: 2px solid var(--frontend-stroke);
      outline-offset: -4px;
    }
    .toolbar { gap: 0.5rem; }
    .toolbar #btn-export { margin-left: 0; }
    .toolbar #btn-export::before { inset: 0.25rem 0; border-radius: 0.6875rem; }
    /* Tools share one quiet capsule; the capsule is drawn inside the 44px row
       so the controls keep their hit area without a tall visible box. */
    .toolbar-group {
      position: relative;
      isolation: isolate;
      display: flex;
      align-items: center;
      gap: 0.0625rem;
      padding: 0 0.25rem;
    }
    .toolbar-group::before {
      position: absolute;
      z-index: -1;
      inset: 0.25rem 0;
      border: 1px solid color-mix(in srgb, var(--panel-border) 85%, transparent);
      border-radius: 0.6875rem;
      background: color-mix(in srgb, var(--panel) 78%, transparent);
      box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04), 0 8px 20px -14px rgba(15, 23, 42, 0.22);
      backdrop-filter: blur(12px);
      content: "";
    }
    .toolbar-group button { padding-inline: 0.625rem; }
    .toolbar-group button::before { inset: 0.5rem 0; border-radius: 0.5rem; }
    /* Theme becomes a sliding switch; its label stays for assistive tech. */
    .toolbar #theme-label,
    .toolbar #present-label {
      position: absolute;
      width: 1px;
      height: 1px;
      overflow: hidden;
      clip: rect(0 0 0 0);
      white-space: nowrap;
    }
    .toolbar #btn-theme {
      width: 3.5rem;
      padding: 0;
      justify-content: center;
    }
    .toolbar #btn-theme::before {
      inset: 0.75rem 0.4375rem;
      border-radius: 999px;
      background: color-mix(in srgb, var(--text) 9%, transparent);
      box-shadow: inset 0 1px 2px rgba(15, 23, 42, 0.08);
    }
    .toolbar #btn-theme:hover::before { background: color-mix(in srgb, var(--text) 13%, transparent); }
    .toolbar #btn-theme::after {
      position: absolute;
      z-index: 0;
      top: 50%;
      left: 0.5625rem;
      width: 1.125rem;
      height: 1.125rem;
      border-radius: 50%;
      background: var(--panel);
      box-shadow: 0 1px 2px rgba(15, 23, 42, 0.18), 0 2px 6px rgba(15, 23, 42, 0.12);
      content: "";
      transform: translateY(-50%);
      transition: left 0.22s cubic-bezier(0.22, 1, 0.36, 1);
    }
    .toolbar #theme-icon {
      position: absolute;
      z-index: 1;
      top: 50%;
      left: calc(0.5625rem + 0.1875rem);
      width: 0.75rem;
      height: 0.75rem;
      color: var(--cloud-stroke);
      transform: translateY(-50%);
      transition: left 0.22s cubic-bezier(0.22, 1, 0.36, 1);
    }
    [data-theme="dark"] .toolbar #btn-theme::before { background: rgba(148, 163, 184, 0.16); }
    [data-theme="dark"] .toolbar #btn-theme::after { left: calc(100% - 0.5625rem - 1.125rem); background: #3b4a63; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.4); }
    [data-theme="dark"] .toolbar #theme-icon { left: calc(100% - 0.5625rem - 1.125rem + 0.1875rem); color: #c7d2fe; }
    .toolbar #btn-present { width: 2.5rem; padding: 0; justify-content: center; }
    .toolbar #btn-present .toolbar-icon { width: 1rem; height: 1rem; }
    html[data-motion="still"] .toolbar #btn-theme::after,
    html[data-motion="still"] .toolbar #theme-icon { transition: none; }
    html[data-present="true"]:not([data-embed="true"]) .toolbar { right: 1rem; }
    html[data-preset="editorial"] .toolbar { border-radius: 0.45rem; }
    .toolbar #btn-motion[hidden] { display: none !important; }
    .toolbar #btn-motion { min-width: 4.4rem; }
    .toolbar #btn-motion:disabled { cursor: default; opacity: 0.58; }
    .toolbar .preset-wrap,
    .toolbar .export-wrap {
      position: relative;
    }
    .toolbar-icon {
      display: inline-block;
      width: 0.95rem;
      height: 0.95rem;
      flex: 0 0 auto;
      background: currentColor;
      -webkit-mask-position: center;
      -webkit-mask-repeat: no-repeat;
      -webkit-mask-size: contain;
      mask-position: center;
      mask-repeat: no-repeat;
      mask-size: contain;
    }
    .toolbar-chevron {
      width: 0.65rem;
      height: 0.65rem;
      transition: transform 0.15s ease;
    }
    [aria-expanded="true"] > .toolbar-chevron { transform: rotate(180deg); }
    [data-theme="light"] #theme-icon {
      -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cg fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round'%3E%3Ccircle cx='10' cy='10' r='3.1'/%3E%3Cpath d='M10 2.2v1.4M10 16.4v1.4M2.2 10h1.4M16.4 10h1.4M4.5 4.5l1 1M14.5 14.5l1 1M15.5 4.5l-1 1M5.5 14.5l-1 1'/%3E%3C/g%3E%3C/svg%3E");
      mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cg fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round'%3E%3Ccircle cx='10' cy='10' r='3.1'/%3E%3Cpath d='M10 2.2v1.4M10 16.4v1.4M2.2 10h1.4M16.4 10h1.4M4.5 4.5l1 1M14.5 14.5l1 1M15.5 4.5l-1 1M5.5 14.5l-1 1'/%3E%3C/g%3E%3C/svg%3E");
    }
    [data-theme="dark"] #theme-icon {
      -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M15.2 12.7A6.3 6.3 0 017.3 4.8a6.3 6.3 0 107.9 7.9Z' fill='none' stroke='black' stroke-width='1.7' stroke-linejoin='round'/%3E%3C/svg%3E");
      mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M15.2 12.7A6.3 6.3 0 017.3 4.8a6.3 6.3 0 107.9 7.9Z' fill='none' stroke='black' stroke-width='1.7' stroke-linejoin='round'/%3E%3C/svg%3E");
    }
    #btn-present[aria-pressed="false"] #present-icon {
      -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M7.2 3.2h-4v4M12.8 3.2h4v4M7.2 16.8h-4v-4M12.8 16.8h4v-4' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round'/%3E%3C/svg%3E");
      mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M7.2 3.2h-4v4M12.8 3.2h4v4M7.2 16.8h-4v-4M12.8 16.8h4v-4' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round'/%3E%3C/svg%3E");
    }
    #btn-present[aria-pressed="true"] #present-icon {
      -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M7.2 7.2h-4v-4M12.8 7.2h4v-4M7.2 12.8h-4v4M12.8 12.8h4v4' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round'/%3E%3C/svg%3E");
      mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M7.2 7.2h-4v-4M12.8 7.2h4v-4M7.2 12.8h-4v4M12.8 12.8h4v4' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round'/%3E%3C/svg%3E");
    }
    .toolbar-chevron {
      -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='m3 4.5 3 3 3-3' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
      mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='m3 4.5 3 3 3-3' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    }
    .toolbar #btn-preset { min-width: 5.4rem; }
    .preset-control-mark {
      width: 0.58rem;
      height: 0.58rem;
      flex: 0 0 auto;
      border: 1px solid var(--frontend-stroke);
      border-radius: 0.2rem;
      background: color-mix(in srgb, var(--frontend-stroke) 28%, transparent);
      transition: border-radius 0.15s, box-shadow 0.15s, transform 0.15s;
    }
    #btn-preset[data-preset-option="signal-flow"] .preset-control-mark {
      border-radius: 50%;
      box-shadow: 0 0 10px color-mix(in srgb, var(--frontend-stroke) 78%, transparent);
    }
    #btn-preset[data-preset-option="blueprint"] .preset-control-mark {
      border-radius: 0.06rem;
      background: transparent;
      box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--frontend-stroke) 32%, transparent);
      transform: rotate(45deg) scale(0.84);
    }
    #btn-preset[data-preset-option="editorial"] .preset-control-mark {
      border-color: var(--arrow-emphasis);
      border-radius: 0;
      background: var(--arrow-emphasis);
      box-shadow: 0 0 0 2px color-mix(in srgb, var(--arrow-emphasis) 14%, transparent);
      transform: rotate(45deg) scale(0.72);
    }
    /* Menus anchor to the tools capsule so they open flush under it. */
    .toolbar-group .preset-wrap { position: static; }
    .toolbar .preset-menu {
      position: absolute;
      top: calc(100% + 0.125rem);
      right: 0;
      display: none;
      width: 17.5rem;
      max-width: calc(100vw - 2rem);
      padding: 0.375rem;
      border: 1px solid color-mix(in srgb, var(--panel-border) 90%, transparent);
      border-radius: 0.875rem;
      background: var(--toolbar-menu-bg);
      box-shadow: 0 1px 2px rgba(15, 23, 42, 0.06), 0 18px 44px -14px rgba(15, 23, 42, 0.3);
    }
    [data-theme="dark"] .toolbar .preset-menu,
    [data-theme="dark"] .toolbar .export-menu {
      border-color: rgba(148, 163, 184, 0.16);
      box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3), 0 18px 44px -12px rgba(0, 0, 0, 0.6);
    }
    /* Menu rows are not toolbar pills: drop the ghost-button pseudo surface. */
    .toolbar .preset-menu button,
    .toolbar .export-menu button { isolation: auto; min-height: 0; }
    .toolbar .preset-menu button::before { display: none; }
    .toolbar .preset-menu.open { display: block; }
    .toolbar .preset-menu.open,
    .toolbar .export-menu.open {
      animation: toolbar-menu-in 0.16s cubic-bezier(0.2, 0.8, 0.2, 1);
      transform-origin: top right;
    }
    @keyframes toolbar-menu-in {
      from { opacity: 0; transform: translateY(-0.25rem) scale(0.985); }
      to { opacity: 1; transform: translateY(0) scale(1); }
    }
    .preset-menu-heading {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 1rem;
      padding: 0.45rem 0.55rem 0.4rem;
      color: var(--text-faint);
      font-size: 0.6875rem;
      font-weight: 600;
      letter-spacing: 0.01em;
    }
    .preset-menu-shortcut {
      display: inline-flex;
      align-items: center;
      gap: 0.35rem;
      font-weight: 500;
    }
    .preset-menu-shortcut kbd {
      min-width: 1.125rem;
      padding: 0.05rem 0.3rem;
      border: 1px solid var(--panel-border);
      border-bottom-width: 2px;
      border-radius: 0.3rem;
      background: color-mix(in srgb, var(--text) 3%, var(--toolbar-menu-bg));
      color: var(--text-muted);
      font-family: inherit;
      font-size: 0.625rem;
      font-weight: 600;
      line-height: 1.3;
      text-align: center;
    }
    .toolbar .preset-option {
      display: grid;
      grid-template-columns: 2.375rem minmax(0, 1fr) 1rem;
      align-items: center;
      gap: 0.75rem;
      width: 100%;
      min-height: 3.125rem;
      margin-top: 0.125rem;
      padding: 0.45rem 0.6rem 0.45rem 0.5rem;
      border: 0;
      border-radius: 0.625rem;
      background: transparent;
      color: var(--text);
      box-shadow: none;
      backdrop-filter: none;
      text-align: left;
      transition: background 0.14s ease;
    }
    .toolbar .preset-option:hover,
    .toolbar .preset-option:focus-visible { background: color-mix(in srgb, var(--text) 5%, transparent); }
    .toolbar .preset-option[aria-checked="true"] { background: color-mix(in srgb, var(--frontend-stroke) 8%, transparent); }
    .toolbar .preset-option:focus-visible {
      outline: 1.5px solid color-mix(in srgb, var(--frontend-stroke) 55%, transparent);
      outline-offset: -1.5px;
    }
    .preset-option-swatch {
      position: relative;
      width: 2.375rem;
      height: 1.75rem;
      overflow: hidden;
      border: 0;
      border-radius: 0.4375rem;
      background: #0f172a;
      box-shadow: inset 0 0 0 1px rgba(148, 163, 184, 0.28), 0 1px 2px rgba(15, 23, 42, 0.12);
      transition: box-shadow 0.14s ease, transform 0.14s ease;
    }
    .toolbar .preset-option:hover .preset-option-swatch { transform: translateY(-1px); }
    .toolbar .preset-option[aria-checked="true"] .preset-option-swatch {
      box-shadow: 0 0 0 2px var(--toolbar-menu-bg), 0 0 0 3.5px var(--frontend-stroke);
    }
    .preset-option-swatch::before,
    .preset-option-swatch::after { position: absolute; content: ""; }
    .preset-option-swatch.classic::before {
      top: 0.42rem;
      right: 0.35rem;
      bottom: 0.42rem;
      left: 0.35rem;
      border: 1px solid #22d3ee;
      border-radius: 0.16rem;
      background: rgba(34, 211, 238, 0.14);
    }
    /* Classic previews the canvas it will actually produce in this theme. */
    [data-theme="light"] .preset-option-swatch.classic {
      background:
        radial-gradient(circle at 1px 1px, #d9dee5 0.6px, transparent 0.9px) 0 0 / 5px 5px,
        #ffffff;
    }
    [data-theme="light"] .preset-option-swatch.classic::before {
      border-color: #1b87a3;
      background: rgba(14, 116, 144, 0.08);
      box-shadow: 0 2px 4px rgba(17, 24, 39, 0.12);
    }
    .preset-option-swatch.signal-flow {
      border-color: #29415f;
      background: linear-gradient(135deg, #07101e 10%, #10243c 100%);
    }
    .preset-option-swatch.signal-flow::before {
      top: 50%;
      right: 0.2rem;
      left: 0.2rem;
      height: 1px;
      background: linear-gradient(90deg, #67e8f9, #c4b5fd);
      box-shadow: 0 0 8px #67e8f9;
    }
    .preset-option-swatch.signal-flow::after {
      top: calc(50% - 0.13rem);
      right: 0.28rem;
      width: 0.26rem;
      height: 0.26rem;
      border-radius: 50%;
      background: #67e8f9;
      box-shadow: 0 0 7px #67e8f9;
    }
    .preset-option-swatch.blueprint {
      border-color: #34799a;
      border-radius: 0.08rem;
      background-color: #0a2031;
      background-image:
        linear-gradient(rgba(102, 217, 239, 0.18) 1px, transparent 1px),
        linear-gradient(90deg, rgba(102, 217, 239, 0.18) 1px, transparent 1px);
      background-size: 0.42rem 0.42rem;
    }
    .preset-option-swatch.blueprint::before {
      top: 0.34rem;
      right: 0.38rem;
      bottom: 0.34rem;
      left: 0.38rem;
      border: 1px solid #66d9ef;
    }
    .preset-option-swatch.editorial {
      border-color: #b8aa94;
      border-radius: 0.08rem;
      background: repeating-linear-gradient(0deg, #f2eee5 0 0.34rem, #d8d0c2 0.36rem, #f2eee5 0.38rem);
    }
    .preset-option-swatch.editorial::before {
      top: 0;
      bottom: 0;
      left: 0.42rem;
      width: 1px;
      background: #c9502d;
      opacity: 0.72;
    }
    .preset-option-swatch.editorial::after {
      top: 0.52rem;
      right: 0.45rem;
      width: 0.38rem;
      height: 0.38rem;
      background: #c9502d;
      transform: rotate(45deg);
    }
    .preset-option-copy { min-width: 0; }
    .preset-option-copy strong,
    .preset-option-copy small { display: block; }
    .preset-option-copy strong {
      color: var(--text);
      font-size: 0.8125rem;
      font-weight: 550;
      letter-spacing: -0.005em;
    }
    .toolbar .preset-option[aria-checked="true"] .preset-option-copy strong { font-weight: 650; }
    .preset-option-copy small {
      margin-top: 0.125rem;
      overflow: hidden;
      color: var(--text-faint);
      font-size: 0.6875rem;
      font-weight: 400;
      white-space: nowrap;
      text-overflow: ellipsis;
    }
    .preset-option-check {
      display: inline-block;
      width: 0.9rem;
      height: 0.9rem;
      color: var(--frontend-stroke);
      background: currentColor;
      -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='m3 8.5 3 3 7-7' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
      -webkit-mask-position: center;
      -webkit-mask-repeat: no-repeat;
      -webkit-mask-size: contain;
      mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='m3 8.5 3 3 7-7' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
      mask-position: center;
      mask-repeat: no-repeat;
      mask-size: contain;
      opacity: 0;
    }
    .preset-option[aria-checked="true"] .preset-option-check { opacity: 1; }
    html[data-preset="editorial"] .toolbar button,
    html[data-preset="editorial"] .preset-menu,
    html[data-preset="editorial"] .export-menu,
    html[data-preset="editorial"] .overview-map,
    html[data-preset="editorial"] .semantic-lens,
    html[data-preset="editorial"] .route-probe,
    html[data-preset="editorial"] .focus-chip,
    html[data-preset="editorial"] .diagram-guide,
    html[data-preset="editorial"] .node-finder {
      border-radius: 0.3rem;
    }
    .motion-control-dot {
      width: 0.46rem;
      height: 0.46rem;
      flex: 0 0 auto;
      border: 1px solid var(--frontend-stroke);
      border-radius: 50%;
      background: var(--frontend-stroke);
      box-shadow: 0 0 9px color-mix(in srgb, var(--frontend-stroke) 72%, transparent);
    }
    #btn-motion[aria-pressed="false"] .motion-control-dot {
      background: transparent;
      box-shadow: none;
    }
    .toolbar .export-menu {
      position: absolute;
      top: calc(100% + 0.125rem);
      right: 0;
      background: var(--toolbar-menu-bg);
      border: 1px solid color-mix(in srgb, var(--panel-border) 90%, transparent);
      width: 19rem;
      max-width: calc(100vw - 2rem);
      max-height: calc(100vh - 5.5rem);
      overflow-y: auto;
      border-radius: 0.875rem;
      padding: 0.375rem;
      display: none;
      flex-direction: column;
      box-shadow: 0 1px 2px rgba(15, 23, 42, 0.06), 0 18px 44px -14px rgba(15, 23, 42, 0.3);
      scrollbar-width: thin;
    }
    .toolbar .export-menu.open { display: flex; }
    .export-menu-header {
      display: flex;
      align-items: flex-start;
      justify-content: space-between;
      gap: 1rem;
      padding: 0.55rem 0.6rem 0.6rem;
    }
    .export-menu-header strong,
    .export-menu-header span { display: block; }
    .export-menu-header strong {
      color: var(--text);
      font-size: 0.875rem;
      font-weight: 600;
      letter-spacing: -0.005em;
    }
    .export-menu-header span {
      margin-top: 0.15rem;
      color: var(--text-faint);
      font-size: 0.75rem;
    }
    .export-menu-header kbd {
      min-width: 1.125rem;
      padding: 0.05rem 0.3rem;
      border: 1px solid var(--panel-border);
      border-bottom-width: 2px;
      border-radius: 0.3rem;
      background: color-mix(in srgb, var(--text) 3%, var(--toolbar-menu-bg));
      color: var(--text-muted);
      font-family: inherit;
      font-size: 0.625rem;
      font-weight: 600;
      line-height: 1.3;
      text-align: center;
    }
    .export-menu-section {
      display: grid;
      grid-template-columns: minmax(0, 1fr);
      gap: 0.0625rem;
    }
    .export-menu-section + .export-menu-section {
      margin-top: 0.3rem;
      padding-top: 0.3rem;
      border-top: 1px solid color-mix(in srgb, var(--panel-border) 80%, transparent);
    }
    .export-menu-heading {
      grid-column: 1 / -1;
      display: block;
      padding: 0.4rem 0.6rem 0.25rem;
      color: var(--text-faint);
      font-size: 0.6875rem;
      font-weight: 600;
      letter-spacing: 0.01em;
    }
    .toolbar .export-menu button {
      display: grid;
      grid-template-columns: 1rem minmax(0, 1fr);
      align-items: center;
      column-gap: 0.7rem;
      background: transparent;
      border: 0;
      box-shadow: none;
      backdrop-filter: none;
      width: 100%;
      min-height: 2.5rem;
      text-align: left;
      padding: 0.4rem 0.6rem;
      border-radius: 0.5625rem;
      color: var(--text);
      white-space: nowrap;
      transition: background 0.14s ease;
    }
    .toolbar .export-menu button:hover,
    .toolbar .export-menu button:focus-visible { background: color-mix(in srgb, var(--text) 5%, transparent); color: var(--text); }
    .toolbar .export-menu button:focus-visible {
      outline: 1.5px solid color-mix(in srgb, var(--frontend-stroke) 55%, transparent);
      outline-offset: -1.5px;
    }
    /* Name and format hint share one line, so each row stays compact. */
    .export-item-copy {
      display: flex;
      align-items: baseline;
      justify-content: space-between;
      gap: 0.75rem;
      min-width: 0;
    }
    .export-item-copy strong {
      overflow: hidden;
      color: inherit;
      font-size: 0.8125rem;
      font-weight: 500;
      text-overflow: ellipsis;
    }
    .export-item-copy small {
      flex: none;
      color: var(--text-faint);
      font-size: 0.6875rem;
      font-weight: 450;
    }
    .toolbar .export-menu button::before {
      position: static;
      z-index: auto;
      inset: auto;
      border-radius: 0;
      display: block;
      width: 1rem;
      height: 1rem;
      background: currentColor;
      color: var(--text-muted);
      content: "";
      opacity: 0.8;
      -webkit-mask-position: center;
      -webkit-mask-repeat: no-repeat;
      -webkit-mask-size: contain;
      mask-position: center;
      mask-repeat: no-repeat;
      mask-size: contain;
    }
    .toolbar .export-menu button[data-action="route-share-card"]::before,
    .toolbar .export-menu button[data-action="reach-share-card"]::before {
      -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath fill='none' stroke='black' stroke-width='1.7' d='M3 4.5h14v11H3zM6 12l2.5-2.5 2 2 1.5-1.5 2 2'/%3E%3Ccircle cx='13.8' cy='7.3' r='1.2' fill='black'/%3E%3C/svg%3E");
      mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath fill='none' stroke='black' stroke-width='1.7' d='M3 4.5h14v11H3zM6 12l2.5-2.5 2 2 1.5-1.5 2 2'/%3E%3Ccircle cx='13.8' cy='7.3' r='1.2' fill='black'/%3E%3C/svg%3E");
    }
    .toolbar .export-menu button[data-action^="copy"]::before {
      -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Crect x='6' y='6' width='10' height='10' rx='1.5' fill='none' stroke='black' stroke-width='1.7'/%3E%3Cpath d='M4 13H3.5A1.5 1.5 0 012 11.5v-8A1.5 1.5 0 013.5 2h8A1.5 1.5 0 0113 3.5V4' fill='none' stroke='black' stroke-width='1.7'/%3E%3C/svg%3E");
      mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Crect x='6' y='6' width='10' height='10' rx='1.5' fill='none' stroke='black' stroke-width='1.7'/%3E%3Cpath d='M4 13H3.5A1.5 1.5 0 012 11.5v-8A1.5 1.5 0 013.5 2h8A1.5 1.5 0 0113 3.5V4' fill='none' stroke='black' stroke-width='1.7'/%3E%3C/svg%3E");
    }
    .toolbar .export-menu button[data-format="png"]::before,
    .toolbar .export-menu button[data-format="jpeg"]::before,
    .toolbar .export-menu button[data-format="webp"]::before {
      -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5 2.5h7l3 3v12H5zM12 2.5v3h3' fill='none' stroke='black' stroke-width='1.7'/%3E%3Cpath d='M7.5 14l2-2 1.5 1.5 1.5-1.5' fill='none' stroke='black' stroke-width='1.7'/%3E%3C/svg%3E");
      mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5 2.5h7l3 3v12H5zM12 2.5v3h3' fill='none' stroke='black' stroke-width='1.7'/%3E%3Cpath d='M7.5 14l2-2 1.5 1.5 1.5-1.5' fill='none' stroke='black' stroke-width='1.7'/%3E%3C/svg%3E");
    }
    .toolbar .export-menu button[data-format^="svg"]::before,
    .toolbar .export-menu button[data-format="webm"]::before {
      -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M10 2.5l7 4v7l-7 4-7-4v-7zM3 6.5l7 4 7-4M10 10.5v7' fill='none' stroke='black' stroke-width='1.7'/%3E%3C/svg%3E");
      mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M10 2.5l7 4v7l-7 4-7-4v-7zM3 6.5l7 4 7-4M10 10.5v7' fill='none' stroke='black' stroke-width='1.7'/%3E%3C/svg%3E");
    }
    .toolbar .export-menu button[data-action="route-share-card"],
    .toolbar .export-menu button[data-action="reach-share-card"] {
      color: var(--text);
      background: color-mix(in srgb, var(--frontend-stroke) 7%, transparent);
    }
    .toolbar .export-menu button[data-action="route-share-card"]::before,
    .toolbar .export-menu button[data-action="reach-share-card"]::before { color: var(--frontend-stroke); opacity: 1; }
    .toolbar .export-menu button[hidden] { display: none; }
    .toolbar .export-menu button[data-action="route-share-card"]:hover,
    .toolbar .export-menu button[data-action="reach-share-card"]:hover {
      background: color-mix(in srgb, var(--frontend-stroke) 12%, transparent);
    }
    .toolbar .export-menu button:disabled {
      color: var(--text-faint);
      background: transparent;
      opacity: 0.55;
      cursor: not-allowed;
    }
    .toolbar .export-menu .hint {
      color: var(--text-faint);
      font-size: 0.6875rem;
    }

    /* Toast — brief feedback for actions like "copied" */
    .archify-toast {
      position: fixed;
      top: 1rem;
      left: 50%;
      transform: translateX(-50%) translateY(-8px);
      background: var(--toolbar-menu-bg);
      color: var(--text);
      border: 1px solid var(--toolbar-border);
      padding: 0.5rem 1rem;
      border-radius: 0.5rem;
      font-family: inherit;
      font-size: 0.75rem;
      opacity: 0;
      transition: opacity 0.2s, transform 0.2s;
      z-index: 200;
      pointer-events: none;
      box-shadow: 0 4px 20px rgba(0,0,0,0.25);
    }
    .archify-toast.show {
      opacity: 1;
      transform: translateX(-50%) translateY(0);
    }

    @media (max-width: 720px) {
      body { padding: 1rem; }
      .toolbar .preset-menu,
      .toolbar .export-menu {
        position: fixed;
        top: 4.5rem;
        right: 1rem;
        left: 1rem;
        width: auto;
        max-width: none;
      }
      .toolbar {
        position: relative;
        top: auto;
        right: auto;
        justify-content: flex-end;
        width: max-content;
        max-width: 100%;
        margin-left: auto;
        margin-bottom: 1rem;
      }
      .header { margin-bottom: 1.25rem; padding-right: 0; }
      html[data-preset="signal-flow"] .header,
      html[data-preset="blueprint"] .header,
      html[data-preset="editorial"] .header { padding-right: 0; }
      .header-row {
        gap: 0.75rem;
        align-items: flex-start;
      }
      html[data-preset="signal-flow"] .header-row,
      html[data-preset="blueprint"] .header-row,
      html[data-preset="editorial"] .header-row { flex-wrap: wrap; }
      html[data-preset="signal-flow"] .header-row::after {
        margin-left: 0;
        order: 3;
      }
      html[data-preset="blueprint"] .header-row::after {
        margin-left: 0;
        order: 3;
      }
      html[data-preset="editorial"] .header-row::after {
        margin-left: 0;
        order: 3;
      }
      h1 {
        font-size: 1.25rem;
        line-height: 1.25;
      }
      .subtitle {
        margin-left: 0;
        font-size: 0.8125rem;
        line-height: 1.55;
      }
      .diagram-container {
        padding: 0.75rem;
        border-radius: 0.75rem;
      }
      html:not([data-embed="true"]) .diagram-container {
        padding: 0.75rem 0.75rem 4.25rem;
      }
      html:not([data-embed="true"]) .diagram-container[data-wide-diagram="true"] {
        overflow-x: auto;
        overflow-y: hidden;
        overscroll-behavior-x: contain;
        scrollbar-width: thin;
        scroll-behavior: smooth;
      }
      html:not([data-embed="true"]) .diagram-container[data-wide-diagram="true"] > svg {
        min-width: 720px;
      }
      html:not([data-embed="true"]) .diagram-container[data-wide-diagram="true"] .diagram-nav,
      html:not([data-embed="true"]) .diagram-container[data-wide-diagram="true"] .overview-map,
      html:not([data-embed="true"]) .diagram-container[data-wide-diagram="true"] .focus-chip,
      html:not([data-embed="true"]) .diagram-container[data-wide-diagram="true"] .route-probe,
      html:not([data-embed="true"]) .diagram-container[data-wide-diagram="true"] .semantic-lens,
      html:not([data-embed="true"]) .diagram-container[data-wide-diagram="true"] .diagram-guide,
      html:not([data-embed="true"]) .diagram-container[data-wide-diagram="true"] .node-finder {
        transform: translateX(var(--archify-scroll-x, 0px));
      }
      .diagram-nav { right: 0.5rem; bottom: 0.5rem; }
      .diagram-nav button {
        min-width: 2.75rem;
        height: 2.75rem;
      }
      .diagram-nav [data-view="reset"] { min-width: 3.75rem; }
      .diagram-nav [data-view="reset"][data-detail-visible] { min-width: 4.35rem; }
      .overview-map {
        right: 0.5rem;
        bottom: 3.7rem;
        width: min(10.25rem, calc(100% - 1rem));
      }
      .overview-map[data-docked="true"] {
        right: var(--archify-radar-right, 0.5rem);
        top: var(--archify-radar-top, 0.5rem);
        bottom: auto;
        transform: none !important;
      }
      .overview-map[data-docked="true"][data-dock-side="left"] {
        right: auto;
        left: var(--archify-radar-left, 0.5rem);
      }
      .overview-map-surface { height: 4rem; }
      .overview-map-feedback { right: 0.5rem; bottom: 3.7rem; }
      .semantic-lens {
        right: 0.5rem;
        bottom: 3.7rem;
        width: calc(100% - 1rem);
        max-height: calc(100% - 4.2rem);
      }
      .semantic-lens[data-dock-side] { left: auto; right: 0.5rem; }
      .semantic-lens-kinds { max-height: min(12rem, 34vh); }
      .focus-chip {
        left: 0.5rem;
        top: 0.5rem;
        width: calc(100% - 1rem);
        max-width: none;
      }
      .relationship-lens-head { padding-top: 0.7rem; }
      .relationship-lens-drag-handle { display: none; }
      .relationship-lens-list { max-height: min(12rem, 38vh); }
      .relationship-lens-actions #btn-focus-relations { display: block; color: var(--database-stroke); }
      .focus-chip:not([data-relations-expanded="true"]) .relationship-lens-head { border-bottom-color: transparent; }
      .focus-chip:not([data-relations-expanded="true"]) .relationship-lens-list { display: none; }
      /* While a mobile reader previews one relationship, turn the full Lens
         into a compact peek card. This keeps the exact source and target on
         canvas instead of covering them with a long, scrollable list. */
      .focus-chip[data-relationship-previewing="true"] .relationship-lens-list {
        max-height: none;
        padding: 0.35rem;
        overflow: hidden;
      }
      .focus-chip[data-relationship-previewing="true"] .relationship-lens-group { margin: 0; }
      .focus-chip[data-relationship-previewing="true"] .relationship-lens-group-title,
      .focus-chip[data-relationship-previewing="true"] .relationship-lens-row:not([data-preview-active="true"]) {
        display: none;
      }
      .node-finder {
        top: 0.5rem;
        left: 0.5rem;
        width: min(22rem, calc(100% - 1rem));
        max-height: calc(100% - 1rem);
      }
      .diagram-guide {
        top: 0.5rem;
        right: 0.5rem;
        left: 0.5rem;
        width: auto;
        max-height: calc(100% - 1rem);
      }
      .diagram-guide-head { padding: 0.62rem 0.7rem 0.52rem; }
      .diagram-guide-stats { padding: 0.42rem 0.7rem; }
      .diagram-guide-actions {
        grid-template-columns: 1fr;
        gap: 0.28rem;
        padding: 0.42rem;
      }
      .diagram-guide-action {
        min-height: 3.1rem;
        padding: 0.42rem 0.48rem;
      }
      .diagram-guide-action small {
        display: block;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
      }
      .diagram-guide-index {
        width: 1.5rem;
        height: 1.5rem;
      }
      .diagram-guide-shortcuts { padding: 0.46rem 0.7rem 0.52rem; }
      .diagram-guide-action[data-guide-action="present"] { grid-column: auto; }
      .route-probe[data-guide-open="true"] {
        visibility: hidden;
        pointer-events: none;
      }
      .node-finder-results { max-height: min(16rem, 38vh); }
      .route-probe {
        left: 0.5rem;
        bottom: 3.7rem;
        width: calc(100% - 1rem);
        min-width: 0;
      }
      .route-probe[data-route-dock="top"] {
        top: 0.5rem;
        bottom: auto;
      }
      .route-probe[data-finder-open="true"] {
        visibility: hidden;
        pointer-events: none;
      }
      .route-probe-head { padding: 0.45rem 0.48rem 0.38rem; }
      .route-probe-path { padding: 0.35rem 0.48rem 0.2rem; }
      .route-probe-node { min-height: 2.75rem !important; }
      .route-journey-controls {
        grid-template-columns: 2.75rem minmax(0, 1fr) 2.75rem minmax(0, 1fr);
        padding: 0.08rem 0.48rem 0.32rem;
      }
      .route-journey-controls button { min-height: 2.75rem; }
      .route-probe-status { padding: 0.05rem 0.48rem 0.38rem; }
      .route-probe-node { max-width: 7.5rem; }
      
      
      
      
      
      
      
      
      
      
      
      html[data-embed="true"][data-share-playback="true"] .diagram-container {
        padding-top: 4.25rem;
      }
      html[data-embed="true"][data-share-moment="true"] .diagram-container {
        padding-top: 4.25rem;
      }
      
      .cards {
        grid-template-columns: 1fr;
        margin-top: 1rem;
      }
      html[data-present="true"]:not([data-embed="true"]) body { padding: 0.5rem; }
      html[data-present="true"]:not([data-embed="true"]) .container {
        gap: 0.5rem;
        height: calc(100dvh - 1rem);
      }
      html[data-present="true"]:not([data-embed="true"]) .toolbar {
        position: fixed;
        top: 0.5rem;
        right: 0.5rem;
        margin: 0;
        gap: 0.25rem;
      }
      html[data-present="true"]:not([data-embed="true"]) .toolbar button {
        min-height: 2.75rem;
        padding: 0.42rem 0.58rem;
      }
      html[data-present="true"]:not([data-embed="true"]) .header {
        min-height: 2.25rem;
        padding: 3.5rem 0 0;
      }
      html[data-present="true"]:not([data-embed="true"]) .header-row {
        min-height: 2.25rem;
        margin: 0;
        align-items: center;
        flex-wrap: nowrap;
      }
      html[data-present="true"]:not([data-embed="true"]) .header-row::after,
      html[data-present="true"]:not([data-embed="true"]) .pulse-dot,
      html[data-present="true"]:not([data-embed="true"]) .subtitle { display: none; }
      html[data-present="true"]:not([data-embed="true"]) h1 {
        flex: 1 1 auto;
        min-width: 0;
        max-width: 100%;
        overflow: hidden;
        font-size: 0.875rem;
        text-overflow: ellipsis;
        white-space: nowrap;
      }
      
      html[data-present="true"]:not([data-embed="true"]) .diagram-container { padding: 0.5rem 0.5rem 3.75rem; }
      html[data-present="true"]:not([data-embed="true"]) .diagram-container[data-wide-diagram="true"] > svg {
        width: 720px;
        height: auto;
        min-width: 720px;
      }
    }

    @media (max-width: 420px) {
      .export-menu-section { grid-template-columns: 1fr; }
      .export-menu-heading,
      .toolbar .export-menu button[data-action="route-share-card"],
      .toolbar .export-menu button[data-action="reach-share-card"] { grid-column: 1; }
    }

    @media (prefers-reduced-motion: reduce) {
      .toolbar .preset-menu.open,
      .toolbar .export-menu.open { animation: none; }
      .toolbar-chevron { transition: none; }
    }

    @media (max-width: 360px) {
      .toolbar { gap: 0.25rem; }
      .toolbar button { padding-right: 0.58rem; padding-left: 0.58rem; }
      .toolbar #btn-motion { min-width: 4.4rem; padding-right: 0.58rem; padding-left: 0.58rem; }
      #theme-label, #preset-label, #present-label { display: none; }
    }

    /* ==========================================================
       SVG SEMANTIC CLASSES — use these instead of inline fill/stroke
       ========================================================== */
    .c-grid       { stroke: var(--grid); fill: none; }
    .c-mask       { fill: var(--mask); stroke: none; }
    .c-lane-rule  { stroke: var(--lane-stroke); fill: none; opacity: 0.7; }
    .c-lane-wash  { fill: var(--lane-fill); stroke: none; }

    .c-frontend   { fill: var(--frontend-fill);   stroke: var(--frontend-stroke); }
    .c-backend    { fill: var(--backend-fill);    stroke: var(--backend-stroke); }
    .c-database   { fill: var(--database-fill);   stroke: var(--database-stroke); }
    .c-cloud      { fill: var(--cloud-fill);      stroke: var(--cloud-stroke); }
    .c-security   { fill: var(--security-fill);   stroke: var(--security-stroke); }
    .c-messagebus { fill: var(--messagebus-fill); stroke: var(--messagebus-stroke); }
    .c-external   { fill: var(--external-fill);   stroke: var(--external-stroke); }

    /* Text helpers */
    .t-primary { fill: var(--text); }
    .t-muted   { fill: var(--text-muted); }
    .t-dim     { fill: var(--text-dim); }
    .t-frontend   { fill: var(--frontend-stroke); }
    .t-backend    { fill: var(--backend-stroke); }
    .t-database   { fill: var(--database-stroke); }
    .t-cloud      { fill: var(--cloud-stroke); }
    .t-security   { fill: var(--security-stroke); }
    .t-messagebus { fill: var(--messagebus-stroke); }
    .t-external   { fill: var(--external-stroke); }

    /* Relationship labels share the exact color token used by their path. */
    .t-edge-default  { fill: var(--arrow); }
    .t-edge-emphasis { fill: var(--arrow-emphasis); }
    .t-edge-security { fill: var(--security-stroke); }
    .t-edge-dashed   { fill: var(--database-stroke); }

    /* Classic canvas: a quiet dot field replaces drafting grid lines, and nodes
       read as lifted cards with hairline strokes. Paint only; authored geometry,
       hit areas and exports keep their canonical shapes. */
    html[data-preset="classic"] .diagram-container {
      background:
        radial-gradient(circle at 1px 1px, var(--canvas-dot) 1px, transparent 1.4px) 0 0 / 20px 20px,
        var(--panel);
    }
    html[data-preset="classic"] .diagram-container > svg .c-grid { stroke: transparent; }
    html[data-preset="classic"][data-theme="light"] .diagram-container > svg [data-node-id] > rect:not(.c-mask) {
      filter: drop-shadow(0 1px 1px rgba(17, 24, 39, 0.05)) drop-shadow(0 6px 12px rgba(17, 24, 39, 0.06));
    }
    html[data-preset="classic"][data-theme="dark"] .diagram-container > svg [data-node-id] > rect:not(.c-mask) {
      filter: drop-shadow(0 8px 16px rgba(0, 0, 0, 0.35));
    }
    html[data-preset="classic"] .diagram-container > svg [data-edge-from] {
      stroke-linecap: round;
      stroke-linejoin: round;
    }
    html[data-preset="classic"] .diagram-container > svg .c-lane-wash { fill: color-mix(in srgb, var(--text) 2.6%, transparent); }
    html[data-preset="classic"] .diagram-container > svg .c-lane-rule { stroke: var(--panel-border); opacity: 1; }
    html[data-preset="classic"][data-theme="dark"] .diagram-container > svg .c-lane-rule { stroke: rgba(148, 163, 184, 0.16); }
    html[data-preset="classic"] .diagram-container > svg [data-node-id] {
      transition: transform 0.18s cubic-bezier(0.22, 1, 0.36, 1);
    }
    html[data-preset="classic"]:not([data-motion="still"]) .diagram-container > svg [data-node-id]:hover {
      transform: translateY(-1.5px);
    }

    /* Semantic Sigils are small authored role stamps, not icons from a brand
       pack and not viewer controls. Prefix selectors with svg so the canonical
       export's SVG-only stylesheet collector keeps them automatically. */
    svg .semantic-sigil {
      fill: none;
      stroke: currentColor;
      stroke-width: 1.35;
      stroke-linecap: round;
      stroke-linejoin: round;
      opacity: 0.76;
      pointer-events: none;
    }
    svg .semantic-sigil > * { vector-effect: non-scaling-stroke; }
    svg .semantic-sigil .sigil-fill { fill: currentColor; stroke: none; }
    svg .s-frontend   { color: var(--frontend-stroke); }
    svg .s-backend    { color: var(--backend-stroke); }
    svg .s-database   { color: var(--database-stroke); }
    svg .s-cloud      { color: var(--cloud-stroke); }
    svg .s-security   { color: var(--security-stroke); }
    svg .s-messagebus { color: var(--messagebus-stroke); }
    svg .s-external   { color: var(--external-stroke); }

    /* Brand Marks are authored identity badges. Their color is contained
       inside one neutral plate so vendor color never replaces Archify's
       semantic node and relationship vocabulary. */
    svg .brand-mark { pointer-events: none; }
    svg .brand-mark-badge { fill: #fff; stroke: none; }
    svg .brand-mark-frame {
      fill: none;
      stroke: #cbd5e1;
      stroke-width: 0.8;
      vector-effect: non-scaling-stroke;
    }
    svg .brand-mark-fallback {
      fill: none;
      stroke: #475569;
      stroke-width: 1.15;
      stroke-linecap: round;
      stroke-linejoin: round;
    }
    svg[data-preset="blueprint"] .brand-mark-badge,
    svg[data-preset="blueprint"] .brand-mark-frame { rx: 1px; }

    /* Reading Depth is a viewer-only level-of-detail layer. MAP preserves the
       authored structure and primary labels, READ restores relationship labels
       and node context, and FULL restores tags and fine annotations. Semantic
       intent can reveal the relevant detail without moving any geometry. */
    svg [data-detail] { transition: opacity 160ms ease; }
    svg [data-detail-anchor] {
      transform-box: fill-box;
      transform-origin: center;
      transition: transform 160ms ease;
    }
    .diagram-container[data-detail-level="map"] svg [data-detail="context"],
    .diagram-container[data-detail-level="map"] svg [data-detail="fine"],
    .diagram-container[data-detail-level="read"] svg [data-detail="fine"] {
      opacity: 0;
      pointer-events: none;
    }
    .diagram-container[data-detail-level="map"] svg [data-detail-anchor] {
      transform: translateY(8px);
    }

    /* Focus, lens, preview, route, and story states are stronger reader intent than
       the global zoom level. Reveal only their exact semantic matches. */
    svg[data-focus-active] [data-focus-match][data-detail],
    svg[data-focus-active] [data-focus-match] [data-detail],
    svg[data-reach-active] [data-reach-match][data-detail],
    svg[data-reach-active] [data-reach-match] [data-detail],
    svg[data-lens-active] [data-lens-match][data-detail],
    svg[data-lens-active] [data-lens-match] [data-detail],
    svg[data-legend-preview-active] [data-legend-preview-match][data-detail],
    svg[data-legend-preview-active] [data-legend-preview-match] [data-detail],
    svg[data-intent-trace-active] [data-intent-trace-match][data-detail],
    svg[data-intent-trace-active] [data-intent-trace-match] [data-detail],
    svg[data-route-active] [data-route-match][data-detail],
    svg[data-route-active] [data-route-match] [data-detail],
    svg[data-relationship-preview-active] [data-relationship-preview][data-detail],
    svg[data-relationship-preview-active] [data-relationship-preview] [data-detail],
    svg [data-node-id]:hover [data-detail],
    svg [data-node-id]:focus-visible [data-detail] {
      opacity: 1;
      pointer-events: auto;
    }
    svg[data-focus-active] [data-focus-match] [data-detail-anchor],
    svg[data-reach-active] [data-reach-match] [data-detail-anchor],
    svg[data-lens-active] [data-lens-match] [data-detail-anchor],
    svg[data-legend-preview-active] [data-legend-preview-match] [data-detail-anchor],
    svg[data-intent-trace-active] [data-intent-trace-match] [data-detail-anchor],
    svg[data-route-active] [data-route-match] [data-detail-anchor],
    svg [data-node-id]:hover [data-detail-anchor],
    svg [data-node-id]:focus-visible [data-detail-anchor] { transform: none; }

    /* Arrows */
    .a-default   { stroke: var(--arrow); fill: none; }
    .a-emphasis  { stroke: var(--arrow-emphasis); fill: none; }
    .a-security  { stroke: var(--security-stroke); fill: none; stroke-dasharray: 5,5; }
    .a-dashed    { stroke: var(--database-stroke); fill: none; stroke-dasharray: 4,4; }

    /* Arrowhead markers reference these */
    .m-default   { fill: var(--arrow); }
    .m-emphasis  { fill: var(--arrow-emphasis); }
    .m-security  { fill: var(--security-stroke); }
    .m-dashed    { fill: var(--database-stroke); }

    /* Stable semantic exploration hooks emitted by every renderer. */
    svg [data-node-id] {
      cursor: pointer;
      transition: opacity 0.18s ease, fill-opacity 0.18s ease, stroke-opacity 0.18s ease, filter 0.18s ease;
    }
    svg [data-edge-from],
    svg [data-graph-role="automatic-crossover-underlay"] { transition: opacity 0.18s ease, filter 0.18s ease; }
    svg [data-node-id]:hover,
    svg [data-node-id]:focus-visible {
      filter: drop-shadow(0 0 7px var(--frontend-stroke));
      outline: none;
    }
    /* Verified Source Beacons are installed at runtime only for nodes whose
       repository evidence passed the local revision/blob/line checks. They
       live inside the owning node so every focus, route, story, and guided
       view keeps one coherent opacity state. Export serialization removes
       them before producing the canonical SVG or any derived visual. */
    .source-evidence-beacon {
      pointer-events: none;
      opacity: 1;
      transition: filter 160ms ease;
    }
    .source-evidence-beacon rect {
      fill: color-mix(in srgb, var(--mask) 92%, var(--backend-stroke));
      stroke: color-mix(in srgb, var(--backend-stroke) 82%, var(--panel-border));
      stroke-width: 1;
      vector-effect: non-scaling-stroke;
    }
    .source-evidence-beacon text {
      fill: var(--backend-stroke);
      font-size: 7px;
      font-weight: 700;
      letter-spacing: 0.06em;
      text-anchor: middle;
      text-transform: uppercase;
    }
    svg [data-node-id]:hover .source-evidence-beacon,
    svg [data-node-id]:focus-visible .source-evidence-beacon,
    svg [data-node-id][data-focus-selected] .source-evidence-beacon {
      opacity: 1;
      filter: drop-shadow(0 0 4px color-mix(in srgb, var(--backend-stroke) 72%, transparent));
    }
    svg[data-preset="signal-flow"] .source-evidence-beacon { opacity: 0.9; }
    svg[data-preset="blueprint"] .source-evidence-beacon rect {
      rx: 0.8px;
      filter: none;
    }
    svg [data-legend-kind][role="button"] { cursor: pointer; }
    svg [data-legend-kind]:focus { outline: none; }
    svg [data-legend-hit] {
      fill: transparent;
      stroke: transparent;
      stroke-width: 1.4;
      pointer-events: all;
      vector-effect: non-scaling-stroke;
      transition: stroke 150ms ease, stroke-width 150ms ease, filter 150ms ease;
    }
    svg [data-legend-count-badge] { pointer-events: none; }
    svg [data-legend-count-badge] rect {
      fill: var(--mask);
      stroke: var(--panel-border);
      stroke-width: 1;
      vector-effect: non-scaling-stroke;
    }
    svg [data-legend-count-badge] text {
      fill: var(--text-muted);
      font-size: 8px;
      font-weight: 700;
      text-anchor: middle;
    }
    svg [data-legend-kind][role="button"]:hover [data-legend-hit] {
      stroke: color-mix(in srgb, var(--database-stroke) 58%, transparent);
    }
    svg [data-legend-kind][role="button"]:focus-visible [data-legend-hit] {
      stroke: var(--frontend-stroke);
      stroke-width: 1.8;
      filter: drop-shadow(0 0 3px var(--frontend-stroke));
    }
    svg [data-legend-kind][data-legend-selected] [data-legend-hit] {
      stroke: var(--database-stroke);
      stroke-width: 2.2;
      stroke-dasharray: 3 2;
    }
    svg [data-legend-kind][data-legend-selected] [data-legend-count-badge] rect {
      stroke: var(--database-stroke);
      stroke-width: 1.8;
    }
    svg [data-legend-kind][data-legend-zero] { opacity: 0.44; }
    svg[data-preset="signal-flow"] [data-legend-kind][data-legend-selected] [data-legend-hit] {
      filter: drop-shadow(0 0 4px var(--database-stroke));
    }
    svg[data-preset="blueprint"] [data-legend-hit],
    svg[data-preset="blueprint"] [data-legend-count-badge] rect { rx: 0; filter: none; }
    svg[data-legend-preview-active] [data-node-id],
    svg[data-legend-preview-active] [data-edge-from] { opacity: 0.11; }
    svg[data-legend-preview-active] [data-legend-preview-match] { opacity: 1; }
    svg[data-legend-preview-active] [data-legend-preview-peer] { opacity: 0.62; }
    svg[data-legend-preview-active] [data-legend-preview-selected] {
      filter: drop-shadow(0 0 8px var(--database-stroke));
    }
    svg[data-lens-active] [data-node-id],
    svg[data-lens-active] [data-edge-from] { opacity: 0.11; }
    svg[data-lens-active] [data-lens-match] { opacity: 1; }
    svg[data-lens-active] [data-lens-peer] { opacity: 0.62; }
    svg[data-lens-active] [data-lens-selected] {
      filter: drop-shadow(0 0 10px var(--database-stroke));
    }
    .semantic-lens-overlay { pointer-events: none; }
    .semantic-lens-flow {
      fill: none;
      stroke-width: 3.05;
      stroke-linecap: round;
      stroke-dasharray: 0.075 0.925;
      stroke-dashoffset: 0;
      vector-effect: non-scaling-stroke;
      opacity: 0.9;
      animation: archify-semantic-lens-flow 1.35s linear 1 both;
      animation-delay: var(--lens-flow-delay, 0s);
    }
    .semantic-lens-flow[data-direction="out"],
    .semantic-lens-flow[data-direction="forward"] {
      stroke: var(--frontend-stroke);
      filter: drop-shadow(0 0 3px var(--frontend-stroke));
    }
    .semantic-lens-flow[data-direction="in"],
    .semantic-lens-flow[data-direction="reverse"] {
      stroke: var(--database-stroke);
      filter: drop-shadow(0 0 3px var(--database-stroke));
    }
    .semantic-lens-flow[data-direction="within"] {
      stroke: var(--messagebus-stroke);
      filter: drop-shadow(0 0 3px var(--messagebus-stroke));
    }
    svg[data-preset="signal-flow"] .semantic-lens-flow {
      stroke-width: 3.7;
      opacity: 1;
    }
    svg[data-preset="signal-flow"] .semantic-lens-flow[data-direction="out"],
    svg[data-preset="signal-flow"] .semantic-lens-flow[data-direction="forward"] {
      filter: drop-shadow(0 0 6px var(--frontend-stroke));
    }
    svg[data-preset="signal-flow"] .semantic-lens-flow[data-direction="in"],
    svg[data-preset="signal-flow"] .semantic-lens-flow[data-direction="reverse"] {
      filter: drop-shadow(0 0 6px var(--database-stroke));
    }
    svg[data-preset="signal-flow"] .semantic-lens-flow[data-direction="within"] {
      filter: drop-shadow(0 0 6px var(--messagebus-stroke));
    }
    svg[data-preset="blueprint"] .semantic-lens-flow {
      stroke-width: 2.45;
      stroke-linecap: square;
      filter: none;
      opacity: 0.78;
    }
    html[data-embed="true"] .semantic-lens-overlay { display: none; }
    /* Automatic crossover masks are visual companions of their one semantic
       edge. Keep the mask free of data-edge-* identity so graph traversal and
       export still observe exactly one edge, then mirror reader emphasis from
       the paired foreground path in this presentation-only wrapper. */
    svg[data-legend-preview-active] [data-graph-role="automatic-crossover"] > [data-graph-role="automatic-crossover-underlay"],
    svg[data-lens-active] [data-graph-role="automatic-crossover"] > [data-graph-role="automatic-crossover-underlay"] { opacity: 0.11; }
    svg[data-legend-preview-active] [data-graph-role="automatic-crossover"]:has(> [data-legend-preview-match]) > [data-graph-role="automatic-crossover-underlay"],
    svg[data-lens-active] [data-graph-role="automatic-crossover"]:has(> [data-lens-match]) > [data-graph-role="automatic-crossover-underlay"] { opacity: 1; }
    svg[data-legend-preview-active] [data-graph-role="automatic-crossover"]:has(> [data-legend-preview-peer]) > [data-graph-role="automatic-crossover-underlay"],
    svg[data-lens-active] [data-graph-role="automatic-crossover"]:has(> [data-lens-peer]) > [data-graph-role="automatic-crossover-underlay"] { opacity: 0.62; }
    svg[data-focus-active] [data-node-id],
    svg[data-focus-active] [data-edge-from] { opacity: 0.13; }
    svg[data-focus-active] [data-graph-role="automatic-crossover"] > [data-graph-role="automatic-crossover-underlay"] { opacity: 0.13; }
    svg[data-focus-active] [data-lifecycle-rail] { opacity: 0; }
    svg[data-focus-active] [data-focus-match] { opacity: 1; }
    svg[data-focus-active] [data-graph-role="automatic-crossover"]:has(> [data-focus-match]) > [data-graph-role="automatic-crossover-underlay"] { opacity: 1; }
    svg[data-focus-active] [data-focus-selected] {
      filter: drop-shadow(0 0 10px var(--frontend-stroke));
    }

    /* Authored Reachability is a bounded graph query over the relationships
       already present in the artifact. Upstream walks incoming edges;
       downstream walks outgoing edges. It never claims runtime causality and
       changes only viewer emphasis, not canonical geometry or export bytes. */
    svg[data-reach-active] [data-node-id],
    svg[data-reach-active] [data-edge-from] { opacity: 0.09; }
    svg[data-reach-active] [data-graph-role="automatic-crossover"] > [data-graph-role="automatic-crossover-underlay"] { opacity: 0.09; }
    svg[data-reach-active] [data-reach-match] { opacity: 1; }
    svg[data-reach-active] [data-graph-role="automatic-crossover"]:has(> [data-reach-match]) > [data-graph-role="automatic-crossover-underlay"] { opacity: 1; }
    svg[data-reach-active="upstream"] [data-reach-origin] {
      filter: drop-shadow(0 0 11px var(--database-stroke));
    }
    svg[data-reach-active="downstream"] [data-reach-origin] {
      filter: drop-shadow(0 0 11px var(--backend-stroke));
    }
    svg[data-reach-active="upstream"] [data-edge-from][data-reach-match] {
      filter: drop-shadow(0 0 4px color-mix(in srgb, var(--database-stroke) 72%, transparent));
    }
    svg[data-reach-active="downstream"] [data-edge-from][data-reach-match] {
      filter: drop-shadow(0 0 4px color-mix(in srgb, var(--backend-stroke) 72%, transparent));
    }
    svg[data-preset="blueprint"][data-reach-active] [data-reach-origin],
    svg[data-preset="blueprint"][data-reach-active] [data-edge-from][data-reach-match] {
      filter: none;
    }

    /* Direct Relationship Explorer makes authored paths a real input surface
       without changing their visible stroke or canonical SVG. A transparent
       runtime rail supplies forgiving pointer geometry; the exact authored
       path and endpoints continue to carry every visible state. */
    .relationship-hit-overlay { pointer-events: none; }
    .relationship-hit-target { outline: none; }
    .relationship-hit-rail {
      fill: none;
      stroke: transparent;
      stroke-width: 24;
      stroke-linecap: round;
      stroke-linejoin: round;
      vector-effect: non-scaling-stroke;
      pointer-events: stroke;
      cursor: pointer;
    }
    .relationship-focus-rail {
      fill: none;
      stroke: color-mix(in srgb, var(--frontend-stroke) 34%, transparent);
      stroke-width: 6;
      stroke-dasharray: 2 4;
      stroke-linecap: round;
      stroke-linejoin: round;
      vector-effect: non-scaling-stroke;
      pointer-events: none;
      opacity: 0;
    }
    .relationship-hit-target:focus-visible .relationship-focus-rail {
      opacity: 1;
    }
    svg[data-preset="blueprint"] .relationship-hit-target:focus-visible .relationship-focus-rail {
      stroke-linecap: square;
      filter: none;
    }
    svg[data-relationship-direct-active] [data-node-id],
    svg[data-relationship-direct-active] [data-edge-from] { opacity: 0.16; }
    svg[data-relationship-direct-active] [data-graph-role="automatic-crossover"] > [data-graph-role="automatic-crossover-underlay"] { opacity: 0.16; }
    svg[data-relationship-direct-active] [data-relationship-preview],
    svg[data-relationship-direct-active] [data-relationship-preview-node] { opacity: 1; }
    svg[data-relationship-direct-active] [data-graph-role="automatic-crossover"]:has(> [data-relationship-preview]) > [data-graph-role="automatic-crossover-underlay"] { opacity: 1; }
    svg[data-focus-active]:not([data-relationship-pin-active]) .relationship-hit-rail,
    svg[data-route-picking] .relationship-hit-rail,
    svg[data-route-active] .relationship-hit-rail,
    svg[data-lens-active] .relationship-hit-rail { pointer-events: none; }
    html[data-embed="true"] .relationship-hit-overlay { display: none; }
    @media (hover: none), (pointer: coarse) {
      .relationship-hit-rail { stroke-width: 24; }
    }

    /* Relationship Preview is temporary exploration state layered on top of
       neighborhood focus. It changes emphasis only; exported geometry and the
       relationship's original solid/dashed visual language stay untouched. */
    svg[data-relationship-preview-active] [data-focus-match] { opacity: 0.18; }
    svg[data-relationship-preview-active] [data-graph-role="automatic-crossover"]:has(> [data-focus-match]) > [data-graph-role="automatic-crossover-underlay"] { opacity: 0.18; }
    svg[data-relationship-preview-active] [data-lifecycle-rail] { opacity: 0; }
    svg[data-relationship-preview-active] [data-relationship-preview],
    svg[data-relationship-preview-active] [data-relationship-preview-node] { opacity: 1; }
    svg[data-relationship-preview-active] [data-graph-role="automatic-crossover"]:has(> [data-relationship-preview]) > [data-graph-role="automatic-crossover-underlay"] { opacity: 1; }
    svg[data-relationship-preview-active] [data-relationship-preview] {
      filter: drop-shadow(0 0 5px var(--arrow-emphasis));
    }
    svg[data-relationship-preview-active] [data-relationship-preview] path,
    svg[data-relationship-preview-active] path[data-relationship-preview],
    svg[data-relationship-preview-active] [data-relationship-preview] line,
    svg[data-relationship-preview-active] line[data-relationship-preview],
    svg[data-relationship-preview-active] [data-relationship-preview] polyline,
    svg[data-relationship-preview-active] polyline[data-relationship-preview] {
      stroke-width: 2.75;
    }
    svg[data-relationship-preview-active] [data-relationship-preview-source] {
      filter: drop-shadow(0 0 7px var(--frontend-stroke));
    }
    svg[data-relationship-preview-active] [data-relationship-preview-target] {
      filter: drop-shadow(0 0 7px var(--database-stroke));
    }
    .relationship-pulse-overlay { pointer-events: none; }
    .relationship-flow-pulse {
      fill: none;
      stroke: var(--arrow-emphasis);
      stroke-width: 3.35;
      stroke-linecap: round;
      stroke-dasharray: 0.085 0.915;
      stroke-dashoffset: 0;
      vector-effect: non-scaling-stroke;
      opacity: 0;
      filter: drop-shadow(0 0 4px var(--arrow-emphasis));
      animation: archify-relationship-pulse 1.2s linear 1 both;
    }
    svg[data-preset="signal-flow"] .relationship-flow-pulse {
      stroke: var(--frontend-stroke);
      stroke-width: 3.85;
      filter: drop-shadow(0 0 7px var(--frontend-stroke));
    }
    svg[data-preset="blueprint"] .relationship-flow-pulse {
      stroke-width: 2.5;
      stroke-linecap: square;
      filter: none;
    }
    svg[data-preset="editorial"] .relationship-flow-pulse {
      stroke: var(--arrow-emphasis);
      stroke-width: 2.75;
      filter: none;
    }
    .semantic-flow-token {
      color: var(--frontend-stroke);
      opacity: 0;
      pointer-events: none;
    }
    .relationship-flow-token {
      animation: archify-relationship-token-life 1.2s linear 1 both;
    }

    .semantic-flow-token-halo {
      fill: var(--mask);
      stroke: currentColor;
      stroke-width: 1.1;
      vector-effect: non-scaling-stroke;
      opacity: 0.96;
    }
    .relationship-flow-token-shape {
      fill: var(--mask);
      stroke: currentColor;
      stroke-width: 1.35;
      stroke-linecap: round;
      stroke-linejoin: round;
      vector-effect: non-scaling-stroke;
    }
    .relationship-flow-token-ink {
      fill: none;
      stroke: currentColor;
      stroke-width: 1.05;
      stroke-linecap: round;
      vector-effect: non-scaling-stroke;
    }
    .relationship-flow-token-dot { fill: currentColor; stroke: none; }
    .semantic-flow-token[data-token-kind="data"] { color: var(--database-stroke); }
    .semantic-flow-token[data-token-kind="event"] { color: var(--messagebus-stroke); }
    .semantic-flow-token[data-token-kind="security"] { color: var(--security-stroke); }
    .semantic-flow-token[data-token-kind="state"] { color: var(--cloud-stroke); }
    svg[data-preset="signal-flow"] .semantic-flow-token {
      filter: drop-shadow(0 0 5px currentColor);
    }
    svg[data-preset="blueprint"] .semantic-flow-token { filter: none; }
    svg[data-preset="editorial"] .semantic-flow-token { filter: none; }
    html[data-embed="true"] .relationship-pulse-overlay { display: none; }

    /* Intent Trace is a temporary, pre-click exploration layer. Related
       topology stays readable while a short viewer-only signal runs over
       cloned edge geometry; the authored edge remains untouched underneath. */
    /* Keep the node's opaque backing mask intact while its visible ink dims.
       Fading the whole group also fades that mask and briefly exposes arrows
       routed underneath the node when the pointer leaves. */
    svg[data-intent-trace-active] [data-node-id] { fill-opacity: 0.2; stroke-opacity: 0.2; }
    svg [data-node-id] > .c-mask { fill-opacity: 1; }
    svg[data-intent-trace-active] [data-node-id][data-intent-trace-match] { fill-opacity: 1; stroke-opacity: 1; }
    svg[data-intent-trace-active] [data-edge-from] { opacity: 0.2; }
    svg[data-intent-trace-active] [data-graph-role="automatic-crossover"] > [data-graph-role="automatic-crossover-underlay"] { opacity: 0.2; }
    svg[data-intent-trace-active] [data-lifecycle-rail] { opacity: 0; }
    svg[data-intent-trace-active] [data-intent-trace-match] { opacity: 1; }
    svg[data-intent-trace-active] [data-graph-role="automatic-crossover"]:has(> [data-intent-trace-match]) > [data-graph-role="automatic-crossover-underlay"] { opacity: 1; }
    svg[data-intent-trace-active] [data-intent-trace-selected] {
      filter: drop-shadow(0 0 10px var(--frontend-stroke));
    }
    .intent-trace-overlay { pointer-events: none; }
    .intent-trace-flow {
      fill: none;
      stroke-width: 3.1;
      stroke-linecap: round;
      stroke-dasharray: 0.1 0.9;
      stroke-dashoffset: 0;
      vector-effect: non-scaling-stroke;
      opacity: 0.94;
      animation: archify-intent-trace-flow 1.15s linear 1 both;
    }
    /* Direction names describe each edge relative to the focused node only.
       The cloned geometry already runs from the authored source to target, so
       incoming and outgoing signals must share the same playback direction. */
    .intent-trace-flow[data-direction="out"] {
      stroke: var(--frontend-stroke);
      filter: drop-shadow(0 0 4px var(--frontend-stroke));
    }
    .intent-trace-flow[data-direction="in"] {
      stroke: var(--database-stroke);
      filter: drop-shadow(0 0 4px var(--database-stroke));
      animation-direction: normal;
    }
    .intent-trace-flow[data-direction="loop"] {
      stroke: var(--security-stroke);
      filter: drop-shadow(0 0 4px var(--security-stroke));
    }
    svg[data-preset="blueprint"] [data-intent-trace-selected],
    svg[data-preset="blueprint"] .intent-trace-flow {
      filter: none;
      stroke-linecap: square;
    }
    svg[data-preset="editorial"] [data-intent-trace-selected],
    svg[data-preset="editorial"] .intent-trace-flow { filter: none; }
    .intent-trace-status {
      position: absolute;
      width: 1px;
      height: 1px;
      padding: 0;
      margin: -1px;
      overflow: hidden;
      clip: rect(0, 0, 0, 0);
      clip-path: inset(50%);
      white-space: nowrap;
      border: 0;
    }

    /* Route Probe separates a durable two-point query from selection and
       one-hop hover. Only the chosen shortest directed path stays prominent;
       the traveling signal is cloned viewer geometry and never authored SVG. */
    svg[data-route-picking="target"] [data-node-id] { opacity: 0.24; }
    svg[data-route-picking="target"] [data-route-candidate],
    svg[data-route-picking="target"] [data-route-start] { opacity: 1; }
    svg[data-route-picking] [data-node-id] { cursor: crosshair; }
    svg[data-route-picking] [data-route-start] {
      filter: drop-shadow(0 0 10px var(--frontend-stroke));
    }
    svg[data-route-active] [data-node-id],
    svg[data-route-active] [data-edge-from] { opacity: 0.11; }
    svg[data-route-active] [data-graph-role="automatic-crossover"] > [data-graph-role="automatic-crossover-underlay"] { opacity: 0.11; }
    svg[data-route-active] [data-route-match] { opacity: 1; }
    svg[data-route-active] [data-graph-role="automatic-crossover"]:has(> [data-route-match]) > [data-graph-role="automatic-crossover-underlay"] { opacity: 1; }
    svg[data-route-active] [data-route-start] {
      filter: drop-shadow(0 0 11px var(--frontend-stroke));
    }
    svg[data-route-active] [data-route-end] {
      filter: drop-shadow(0 0 11px var(--security-stroke));
    }
    svg[data-route-active] [data-route-step]:not([data-route-start]):not([data-route-end]) {
      filter: drop-shadow(0 0 7px var(--backend-stroke));
    }
    svg[data-route-journey] [data-route-match][data-route-journey-state="past"] { opacity: 0.62; }
    svg[data-route-journey] [data-route-match][data-route-journey-state="future"] { opacity: 0.34; }
    svg[data-route-journey] [data-route-match][data-route-journey-state="current"] { opacity: 1; }
    svg[data-route-journey] [data-graph-role="automatic-crossover"]:has(> [data-route-match][data-route-journey-state="past"]) > [data-graph-role="automatic-crossover-underlay"] { opacity: 0.62; }
    svg[data-route-journey] [data-graph-role="automatic-crossover"]:has(> [data-route-match][data-route-journey-state="future"]) > [data-graph-role="automatic-crossover-underlay"] { opacity: 0.34; }
    svg[data-route-journey] [data-graph-role="automatic-crossover"]:has(> [data-route-match][data-route-journey-state="current"]) > [data-graph-role="automatic-crossover-underlay"] { opacity: 1; }
    svg[data-route-journey] [data-node-id][data-route-journey-current] {
      filter: drop-shadow(0 0 10px var(--backend-stroke));
    }
    svg[data-route-journey] [data-edge-from][data-route-journey-current] {
      opacity: 1;
      filter: drop-shadow(0 0 6px var(--backend-stroke));
    }
    .route-probe-overlay { pointer-events: none; }
    .route-journey-overlay { pointer-events: none; }
    .route-probe-flow {
      fill: none;
      stroke: var(--backend-stroke);
      stroke-width: 3.25;
      stroke-linecap: round;
      stroke-dasharray: 0.085 0.915;
      stroke-dashoffset: 0;
      vector-effect: non-scaling-stroke;
      opacity: 0.96;
      filter: drop-shadow(0 0 5px var(--backend-stroke));
      animation: archify-route-probe-flow 1.1s cubic-bezier(0.22, 1, 0.36, 1) 1 both;
      animation-delay: calc(var(--route-step, 0) * 0.16s);
    }
    .route-journey-flow {
      fill: none;
      stroke: var(--backend-stroke);
      stroke-width: 3.5;
      stroke-linecap: round;
      stroke-dasharray: 0.1 0.9;
      stroke-dashoffset: 0;
      vector-effect: non-scaling-stroke;
      opacity: 0;
      filter: drop-shadow(0 0 6px var(--backend-stroke));
      animation: archify-route-journey-flow 780ms cubic-bezier(0.22, 1, 0.36, 1) 1 both;
    }
    svg[data-preset="blueprint"] [data-route-start],
    svg[data-preset="blueprint"] [data-route-end],
    svg[data-preset="blueprint"] [data-route-step],
    svg[data-preset="blueprint"] .route-probe-flow {
      filter: none;
      stroke-linecap: square;
    }
    svg[data-preset="blueprint"] .route-journey-flow {
      filter: none;
      stroke-linecap: square;
    }
    svg[data-preset="editorial"] [data-route-start],
    svg[data-preset="editorial"] [data-route-end],
    svg[data-preset="editorial"] [data-route-step],
    svg[data-preset="editorial"] .route-probe-flow,
    svg[data-preset="editorial"] .route-journey-flow { filter: none; }

    svg[data-preset="editorial"] .c-grid {
      stroke-dasharray: 1 4;
      opacity: 0.48;
    }
    svg[data-preset="editorial"] .c-region {
      fill: color-mix(in srgb, var(--cloud-fill) 48%, transparent);
      stroke-dasharray: 9 4;
    }
    svg[data-preset="editorial"] [data-node-id]:hover,
    svg[data-preset="editorial"] [data-node-id]:focus-visible,
    svg[data-preset="editorial"][data-focus-active] [data-focus-selected] {
      filter: drop-shadow(0 2px 2px color-mix(in srgb, var(--text) 18%, transparent));
    }

    svg[data-preset="blueprint"] .c-grid {
      stroke-dasharray: 1 3;
      opacity: 0.78;
    }
    svg[data-preset="blueprint"] .c-region {
      fill: color-mix(in srgb, var(--cloud-fill) 58%, transparent);
      stroke-dasharray: 12 4 2 4;
    }
    svg[data-preset="blueprint"] .c-security-group,
    svg[data-preset="blueprint"] .c-lane { stroke-dasharray: 7 3; }
    svg[data-preset="blueprint"] [data-node-id]:hover,
    svg[data-preset="blueprint"] [data-node-id]:focus-visible {
      filter: drop-shadow(0 0 3px var(--frontend-stroke));
    }
    svg[data-preset="blueprint"][data-focus-active] [data-focus-selected] {
      filter: drop-shadow(0 0 3px var(--frontend-stroke));
    }
    svg[data-preset="blueprint"][data-focus-active][data-reach-active] [data-focus-selected][data-reach-origin] {
      filter: none;
    }
    svg[data-preset="blueprint"][data-relationship-preview-active] [data-relationship-preview],
    svg[data-preset="blueprint"][data-relationship-preview-active] [data-relationship-preview-source],
    svg[data-preset="blueprint"][data-relationship-preview-active] [data-relationship-preview-target] {
      filter: drop-shadow(0 0 3px var(--frontend-stroke));
    }

    /* Dashed boundary variants */
    .c-security-group { fill: transparent; stroke: var(--security-stroke); stroke-dasharray: 4,4; }
    .c-region         { fill: rgba(251, 191, 36, 0.05); stroke: var(--cloud-stroke); stroke-dasharray: 8,4; }
    .c-lane           { fill: var(--lane-fill); stroke: var(--lane-stroke); stroke-dasharray: 6,6; }

    /* Optional trace animation, enabled only by meta.animation = "trace".
       The ordinary viewer performs one ambient pass and then restores the
       authored solid/security/async line language. WebM samples the same
       authored geometry into an explicit canvas timeline. */
    html[data-ambient-motion="running"] svg[data-animation="trace"] [data-animate="edge"] {
      animation: archify-edge-flow 2.4s linear 1;
      animation-delay: calc(var(--step, 0) * 160ms);
    }
    html[data-ambient-motion="running"] svg[data-animation="trace"] [data-graph-role="automatic-crossover"]:has(> [data-animate="edge"]) > [data-graph-role="automatic-crossover-underlay"] {
      animation: archify-edge-flow 2.4s linear 1;
      animation-delay: calc(var(--step, 0) * 160ms);
    }
    html[data-ambient-motion="running"] svg[data-animation="trace"] [data-animate="node"] {
      transform-box: fill-box;
      transform-origin: center;
      animation: archify-node-pulse 3.6s ease-in-out 1;
      animation-delay: calc(var(--step, 0) * 160ms);
    }
    svg[data-preset="signal-flow"][data-animation="trace"] [data-animate="edge"] {
      stroke-linecap: round;
      filter: drop-shadow(0 0 3px var(--arrow-emphasis));
      animation-duration: 1.75s;
    }
    svg[data-preset="signal-flow"][data-animation="trace"] [data-graph-role="automatic-crossover"]:has(> [data-animate="edge"]) > [data-graph-role="automatic-crossover-underlay"] { animation-duration: 1.75s; }
    svg[data-preset="signal-flow"][data-animation="trace"] [data-animate="node"] {
      animation-duration: 3.1s;
    }
    svg[data-preset="blueprint"][data-animation="trace"] [data-animate="edge"] {
      stroke-linecap: square;
      filter: none;
      animation-duration: 2.15s;
    }
    svg[data-preset="blueprint"][data-animation="trace"] [data-graph-role="automatic-crossover"]:has(> [data-animate="edge"]) > [data-graph-role="automatic-crossover-underlay"] { animation-duration: 2.15s; }
    svg[data-preset="blueprint"][data-animation="trace"] [data-animate="node"] {
      animation-name: archify-blueprint-node-pulse;
      animation-duration: 3.8s;
    }
    svg[data-preset="editorial"][data-animation="trace"] [data-animate="edge"] {
      filter: none;
      animation-duration: 2.2s;
    }
    svg[data-preset="editorial"][data-animation="trace"] [data-graph-role="automatic-crossover"]:has(> [data-animate="edge"]) > [data-graph-role="automatic-crossover-underlay"] { animation-duration: 2.2s; }
    svg[data-preset="editorial"][data-animation="trace"] [data-animate="node"] {
      animation-name: archify-editorial-node-pulse;
      animation-duration: 3.5s;
    }
    /* Embedded proofs stay static so proof grids are calm instead of leaving
       ambient trace loops on. */
    html[data-embed="true"] svg[data-animation="trace"] [data-animate],
    html[data-share-playback="true"] svg[data-animation="trace"] [data-animate] {
      animation: none !important;
      stroke-dashoffset: 0;
    }
    html[data-embed="true"] svg[data-animation="trace"] [data-graph-role="automatic-crossover"]:has(> [data-animate="edge"]) > [data-graph-role="automatic-crossover-underlay"],
    html[data-share-playback="true"] svg[data-animation="trace"] [data-graph-role="automatic-crossover"]:has(> [data-animate="edge"]) > [data-graph-role="automatic-crossover-underlay"] {
      animation: none !important;
      stroke-dashoffset: 0;
    }
    @keyframes archify-edge-flow {
      0% { stroke-dasharray: 10 8; stroke-dashoffset: 54; opacity: 0.42; }
      88% { stroke-dasharray: 10 8; stroke-dashoffset: 0; opacity: 1; }
      99.9% { stroke-dasharray: 10 8; stroke-dashoffset: 0; opacity: 1; }
      100% { stroke-dashoffset: 0; opacity: 1; }
    }
    @keyframes archify-node-pulse {
      0%, 72%, 100% { filter: none; stroke-width: 1.5; }
      18%, 36% {
        filter: drop-shadow(0 0 8px var(--arrow-emphasis));
        stroke-width: 2.4;
      }
    }
    @keyframes archify-blueprint-node-pulse {
      0%, 72%, 100% { opacity: 1; filter: none; }
      18%, 36% { opacity: 0.72; filter: drop-shadow(0 0 2px var(--frontend-stroke)); }
    }
    @keyframes archify-editorial-node-pulse {
      0%, 72%, 100% { opacity: 1; filter: none; }
      18%, 36% { opacity: 0.78; filter: drop-shadow(0 2px 2px color-mix(in srgb, var(--text) 18%, transparent)); }
    }
    @keyframes archify-signal-scan {
      0%, 18% { opacity: 1; transform: translateX(-70%); }
      70% { opacity: 1; transform: translateX(70%); }
      100% { opacity: 0; transform: translateX(70%); }
    }
    @keyframes archify-radar-live {
      0% { box-shadow: 0 0 0 0 color-mix(in srgb, var(--backend-stroke) 52%, transparent); }
      55%, 100% { box-shadow: 0 0 0 0.32rem transparent; }
    }

    @keyframes archify-intent-trace-flow {
      0% { opacity: 0.28; stroke-dashoffset: 0; }
      12%, 78% { opacity: 0.94; }
      100% { opacity: 0; stroke-dashoffset: -1; }
    }
    @keyframes archify-route-probe-flow {
      0% { stroke-dashoffset: 0; opacity: 0.96; }
      78% { stroke-dashoffset: -1; opacity: 0.96; }
      100% { stroke-dasharray: none; stroke-dashoffset: 0; opacity: 0.58; }
    }
    @keyframes archify-route-journey-flow {
      0% { opacity: 0.16; stroke-dashoffset: 0; }
      14%, 76% { opacity: 1; }
      100% { opacity: 0; stroke-dashoffset: -1; }
    }
    @keyframes archify-semantic-lens-flow {
      0% { opacity: 0.2; stroke-dashoffset: 0; }
      12%, 78% { opacity: 0.9; }
      100% { opacity: 0; stroke-dashoffset: -1; }
    }
    @keyframes archify-relationship-pulse {
      0% { opacity: 0.18; stroke-dashoffset: 0; }
      10%, 76% { opacity: 0.98; }
      100% { opacity: 0; stroke-dashoffset: -1; }
    }
    @keyframes archify-relationship-token-life {
      0%, 7% { opacity: 0; }
      13%, 82% { opacity: 1; }
      100% { opacity: 0; }
    }

    @keyframes archify-share-cue-enter {
      from { opacity: 0; transform: translate(-50%, -0.45rem); }
      to { opacity: 1; transform: translate(-50%, 0); }
    }
    @keyframes archify-share-cue-pulse {
      0%, 100% { opacity: 1; transform: scale(1); }
      50% { opacity: 0.48; transform: scale(0.78); }
    }
    @media (prefers-reduced-motion: reduce) {
      html[data-preset="signal-flow"] .diagram-container::before {
        animation: none !important;
      }
      .pulse-dot { animation: none !important; }
      svg[data-animation="trace"] [data-animate] {
        animation: none !important;
        stroke-dashoffset: 0;
      }
      svg[data-animation="trace"] [data-graph-role="automatic-crossover"]:has(> [data-animate="edge"]) > [data-graph-role="automatic-crossover-underlay"] {
        animation: none !important;
        stroke-dashoffset: 0;
      }
      .intent-trace-flow,
      .route-probe-flow,
      .semantic-lens,
      .diagram-guide,
      .overview-map-live { animation: none !important; }
      
      .intent-trace-flow {
        animation: none !important;
        stroke-dasharray: none;
        stroke-dashoffset: 0;
        opacity: 0.72;
      }
      .route-probe-flow {
        animation: none !important;
        stroke-dasharray: none;
        stroke-dashoffset: 0;
        opacity: 0.78;
      }
      .route-journey-overlay { display: none !important; }
      .semantic-lens-flow {
        animation: none !important;
        stroke-dasharray: none;
        stroke-width: 2.2;
        opacity: 0.34;
        filter: none;
      }
      .relationship-pulse-overlay { display: none !important; }
      .source-evidence-beacon,
      svg [data-node-id], svg [data-edge-from], svg [data-detail], svg [data-detail-anchor], svg [data-legend-hit], svg { transition: none !important; }
    }
  


/* UNIFIN skin: IBM Blue #0F62FE, Deutsche Blue #0018A8, светло-серые градации. Без тёплых (кофейных/золотых) тонов. */
@font-face{font-family:'Onest';font-weight:400;font-style:normal;src:url('fonts/Onest-Regular.ttf') format('truetype');font-display:swap}
@font-face{font-family:'Onest';font-weight:500;font-style:normal;src:url('fonts/Onest-Medium.ttf') format('truetype');font-display:swap}
@font-face{font-family:'Onest';font-weight:700;font-style:normal;src:url('fonts/Onest-Bold.ttf') format('truetype');font-display:swap}
svg text, .diagram-toolbar, body, button, input, select, textarea { font-family:'Onest','Segoe UI',Arial,sans-serif !important; }
[data-theme="light"]{
  --bg:#F4F5F7; --grid:#E9ECEF; --canvas-dot:#D3D9DF;
  --text:#0D1B2A; --text-muted:#5B6B7C; --text-dim:#8494A3; --text-faint:#98A5B3;
  --panel:rgba(255,255,255,.75); --panel-border:#E1E5EA; --lane-fill:rgba(255,255,255,.65); --lane-stroke:#C9D0D8;
  --arrow:#8593A1; --arrow-emphasis:#0F62FE; --mask:#F4F5F7;
  --frontend-fill:rgba(56,152,236,.14);  --frontend-stroke:#3898EC;
  --backend-fill:rgba(15,98,254,.12);    --backend-stroke:#0F62FE;
  --database-fill:rgba(0,24,168,.10);    --database-stroke:#0018A8;
  --cloud-fill:rgba(34,145,203,.12);     --cloud-stroke:#2291CB;
  --security-fill:rgba(59,130,246,.12);  --security-stroke:#3B82F6;
  --messagebus-fill:rgba(21,128,61,.10); --messagebus-stroke:#15803D;
  --external-fill:rgba(237,240,243,.7);  --external-stroke:#8494A3;
  --toolbar-bg:rgba(255,255,255,.9); --toolbar-border:#E1E5EA; --toolbar-text:#1F2C3A;
  --toolbar-hover:#EDF0F3; --toolbar-menu-bg:#FFFFFF;
}
[data-theme="dark"]{
  --bg:#0B0D10; --grid:#171A1E; --canvas-dot:rgba(124,136,148,.15);
  --text:#F2F4F7; --text-muted:#9AA5B1; --text-dim:#5E6B77; --text-faint:#7C8894;
  --panel:rgba(20,23,27,.6); --panel-border:#262B31; --lane-fill:rgba(20,23,27,.3); --lane-stroke:#343B43;
  --arrow:#4B5560; --arrow-emphasis:#58A6FF; --mask:#0B0D10;
  --frontend-fill:rgba(56,152,236,.18);  --frontend-stroke:#3898EC;
  --backend-fill:rgba(76,155,245,.16);   --backend-stroke:#4C9BF5;
  --database-fill:rgba(110,168,254,.12); --database-stroke:#6EA8FE;
  --cloud-fill:rgba(34,145,203,.16);     --cloud-stroke:#2291CB;
  --security-fill:rgba(66,195,212,.14);  --security-stroke:#42C3D4;
  --messagebus-fill:rgba(34,197,94,.13); --messagebus-stroke:#22C55E;
  --external-fill:rgba(38,42,46,.5);     --external-stroke:#8A97A5;
  --toolbar-bg:rgba(14,17,20,.85); --toolbar-border:#262B31; --toolbar-text:#E8ECF0;
  --toolbar-hover:rgba(24,28,32,.95); --toolbar-menu-bg:#141920;
}
/* границы: спокойная линия вместо пунктира, подпись ровнее */
svg .c-security-group, svg .c-trust-group, svg [data-composition-frame-kind] { stroke-dasharray:none; }
.semantic-sigil { opacity: .92; }
