@layer reset,tokens,base,primeng,components,utilities;@layer tokens{:root{--p-void-950: #07060d;--p-void-900: #0c0b16;--p-void-850: #110f1e;--p-void-800: #171529;--p-void-700: #221f38;--p-void-600: #2e2a4a;--p-void-500: #423d63;--p-void-300: #9a94bd;--p-void-200: #c3bfdb;--p-void-100: #eceaf7;--p-magenta-300: #ff7cc3;--p-magenta-400: #ff3ea5;--p-magenta-700: #b0176a;--p-cyan-300: #8af7ff;--p-cyan-400: #3df2ff;--p-cyan-700: #0e8c99;--p-amber-300: #ffcb7a;--p-amber-400: #ffb547;--p-amber-700: #8c4d00;--p-green-400: #5cffa8;--p-violet-400: #a47bff;--p-orange-400: #ff8a3d;--p-red-400: #ff5468;--p-chrome-50: #ffffff;--p-chrome-100: #e6e9f2;--p-chrome-300: #b7bdd0;--p-chrome-500: #7b8199;--p-chrome-700: #4a4f66;--p-paper-50: #fafafa;--p-paper-100: #f5f5f5;--p-paper-200: #e3e3e3;--p-paper-300: #e0e0e0;--p-ink-900: #111827;--p-ink-500: #5f6673;--p-link-600: #1c6fae;--p-code-900: #282c34;--p-black: #000000;--p-white: #ffffff;--p-font-display: "Chakra Petch", "Segoe UI", system-ui, sans-serif;--p-font-read: "Inter", -apple-system, "Segoe UI", "Helvetica Neue", Arial, sans-serif;--p-font-mono: "JetBrains Mono", Consolas, Monaco, "Courier New", monospace}:root,[data-theme=retro]{--bg-page: var(--p-void-950);--bg-horizon: color-mix(in srgb, var(--p-magenta-400) 20%, transparent);--bg-haze: color-mix(in srgb, var(--p-cyan-400) 7%, transparent);--bg-grid-line: color-mix(in srgb, var(--p-cyan-400) 30%, transparent);--surface-chrome: linear-gradient(180deg, var(--p-void-700), var(--p-void-800));--surface-hud: color-mix(in srgb, var(--p-void-900) 88%, transparent);--surface-inset: var(--p-void-950);--border-chrome: var(--p-void-600);--bracket: var(--p-cyan-400);--chrome-text: linear-gradient( 180deg, var(--p-chrome-50) 0%, var(--p-chrome-100) 40%, var(--p-chrome-500) 52%, var(--p-chrome-100) 60%, var(--p-chrome-50) 100% );--surface-panel: var(--p-void-850);--surface-readout: var(--p-void-900);--surface-row-hover: var(--p-void-800);--border-panel: var(--p-void-600);--border-subtle: var(--p-void-700);--surface-sheet: var(--p-paper-50);--sheet-text: var(--p-ink-900);--sheet-text-muted: var(--p-ink-500);--sheet-link: var(--p-link-600);--sheet-border: var(--p-paper-300);--sheet-head: var(--p-paper-100);--sheet-code-inline: rgb(250 239 227);--sheet-code-block: var(--p-code-900);--sheet-code-text: var(--p-white);--sheet-quote: var(--p-link-600);--text-primary: var(--p-void-100);--text-muted: var(--p-void-300);--text-dim: var(--p-void-500);--text-accent: var(--p-cyan-300);--text-hot: var(--p-magenta-300);--text-warn: var(--p-amber-300);--text-on-neon: var(--p-void-950);--key-top: var(--p-void-600);--key-base: var(--p-void-700);--key-rim: var(--p-void-500);--key-edge: var(--p-black);--key-text: var(--p-void-100);--key-hot-top: var(--p-magenta-300);--key-hot-base: var(--p-magenta-400);--key-hot-edge: var(--p-magenta-700);--key-cyan-top: var(--p-cyan-300);--key-cyan-base: var(--p-cyan-400);--key-cyan-edge: var(--p-cyan-700);--key-amber-top: var(--p-amber-300);--key-amber-base: var(--p-amber-400);--key-amber-edge: var(--p-amber-700);--led-off: var(--p-void-600);--led-cyan: var(--p-cyan-400);--led-magenta: var(--p-magenta-400);--led-amber: var(--p-amber-400);--led-green: var(--p-green-400);--led-violet: var(--p-violet-400);--led-orange: var(--p-orange-400);--led-red: var(--p-red-400);--jewel-rim: var(--p-chrome-500);--metal-light: var(--p-chrome-100);--metal-mid: var(--p-chrome-300);--metal-dark: var(--p-chrome-700);--focus-ring: var(--p-cyan-400);--focus-ring-sheet: var(--p-magenta-700);--shadow-deep: color-mix(in srgb, var(--p-black) 65%, transparent);--glow-cyan: color-mix(in srgb, var(--p-cyan-400) 45%, transparent);--glow-magenta: color-mix(in srgb, var(--p-magenta-400) 50%, transparent);--glow-amber: color-mix(in srgb, var(--p-amber-400) 45%, transparent);--scanline: color-mix(in srgb, var(--p-black) 35%, transparent);--radius-panel: 10px;--radius-key: 8px;--radius-chip: 6px;--radius-sheet: 8px;--radius-print: 3px;--font-display: var(--p-font-display);--font-read: var(--p-font-read);--font-mono: var(--p-font-mono);--text-2xs: .6875rem;--text-xs: .8125rem;--text-sm: .875rem;--text-md: 1rem;--text-lg: 1.125rem;--text-xl: 1.375rem;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--hud-height: 64px;--content-max: 90rem;--sheet-max: 950px;--key-travel: 3px;--duration-press: 70ms;--duration-state: .16s;--duration-route: .22s;--duration-shell: .24s;--ease-out: cubic-bezier(.23, 1, .32, 1);--ease-in-out: cubic-bezier(.77, 0, .175, 1);--z-backdrop: -1;--z-hud: 200;--z-menu: 1000;--z-overlay: 1100;--z-modal: 1200;--z-tooltip: 1300}@media(max-width:767px){:root{--hud-height: 52px}}@media(prefers-contrast:more){:root{--glow-cyan: transparent;--glow-magenta: transparent;--scanline: transparent;--text-muted: var(--p-void-200)}}}@layer base{@font-face{font-family:Chakra Petch;font-style:normal;font-weight:500;font-display:optional;src:url(/fonts/chakra-petch-500.woff2) format("woff2")}@font-face{font-family:Chakra Petch;font-style:normal;font-weight:600;font-display:optional;src:url(/fonts/chakra-petch-600.woff2) format("woff2")}@font-face{font-family:Chakra Petch;font-style:normal;font-weight:700;font-display:optional;src:url(/fonts/chakra-petch-700.woff2) format("woff2")}@font-face{font-family:Chakra Petch;font-style:italic;font-weight:700;font-display:optional;src:url(/fonts/chakra-petch-700-italic.woff2) format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:optional;src:url(/fonts/inter-400.woff2) format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:optional;src:url(/fonts/inter-500.woff2) format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:optional;src:url(/fonts/inter-600.woff2) format("woff2")}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:optional;src:url(/fonts/jetbrains-mono-400.woff2) format("woff2")}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:optional;src:url(/fonts/jetbrains-mono-500.woff2) format("woff2")}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:600;font-display:optional;src:url(/fonts/jetbrains-mono-600.woff2) format("woff2")}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:700;font-display:optional;src:url(/fonts/jetbrains-mono-700.woff2) format("woff2")}}@layer reset{*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0}}@layer base{body{min-height:100dvh;background:var(--bg-page);color:var(--text-primary);font:400 var(--text-md) / 1.55 var(--font-read);-webkit-font-smoothing:antialiased}a{color:var(--text-accent)}:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}}@layer components{joo-logotype b{font-weight:700;font-style:italic}::view-transition-old(root),::view-transition-new(root){animation:none}::view-transition-group(app-chrome){animation:none}::view-transition-old(app-main){animation:app-main-out var(--duration-route) var(--ease-out) both}::view-transition-new(app-main){animation:app-main-in var(--duration-route) var(--ease-out) both}@keyframes app-main-out{to{opacity:0;transform:translateY(-.5rem)}}@keyframes app-main-in{0%{opacity:0;transform:translateY(.75rem)}}@media(prefers-reduced-motion:reduce){::view-transition-old(app-main),::view-transition-new(app-main){animation:none}}joo-topic-tree .p-tree-node-label{white-space:normal}joo-prose-content h1,joo-prose-content h2,joo-prose-content h3,joo-prose-content h4{margin:1.6em 0 .6em;font-weight:500;line-height:1.3}joo-prose-content>:first-child{margin-top:0}joo-prose-content h1{font-size:1.4em}joo-prose-content h2{font-size:1.3em}joo-prose-content h3{font-size:1.25em}joo-prose-content h4{font-size:1.125em}joo-prose-content p{margin:0 0 1rem}joo-prose-content a{color:var(--sheet-link);text-decoration:none}joo-prose-content a:hover{text-decoration:underline}joo-prose-content ul,joo-prose-content ol{margin:0 0 1rem;padding-left:2rem}joo-prose-content li{margin-bottom:.5rem}joo-prose-content .mermaid{display:flex;justify-content:center;margin:1.25rem 0 1.5rem}joo-prose-content .mermaid svg{max-width:100%;height:auto}joo-prose-content code{padding:.2rem .4rem;font:600 .9em var(--font-mono);color:var(--sheet-text);background:var(--sheet-code-inline);border-radius:4px}joo-prose-content pre{margin:0 0 1rem;padding:1rem;font-size:.85em;line-height:1.5;white-space:pre-wrap;color:var(--sheet-code-text);background:var(--sheet-code-block);border-radius:8px}joo-prose-content pre code{padding:0;font-weight:400;font-size:inherit;color:inherit;background:none}joo-prose-content blockquote{margin:0 0 1rem;padding-left:1rem;color:var(--sheet-text-muted);border-left:4px solid var(--sheet-quote)}joo-prose-content table{width:100%;margin:0 0 1rem;border-collapse:collapse}joo-prose-content th,joo-prose-content td{padding:.5rem;text-align:left;border:1px solid var(--sheet-border)}joo-prose-content th{font-weight:500;background:var(--sheet-head)}joo-prose-content hr{margin:2rem 0;border:0;border-top:1px solid var(--sheet-border)}joo-prose-content .fig{margin:1.4rem 0 1.8rem}joo-prose-content .fig svg{display:block;width:100%;height:auto}joo-prose-content .fig svg text{font-family:var(--font-read)}joo-prose-content .fig .fig-narrow{display:none}@media(max-width:768px){joo-prose-content .fig:has(.fig-narrow) .fig-wide{display:none}joo-prose-content .fig:has(.fig-narrow) .fig-narrow{display:block}joo-prose-content .fig:not(:has(.fig-narrow)){position:relative;cursor:zoom-in}}.edge-handle{display:none}@media(max-width:1023px){.edge-handle{display:inline-flex;align-items:center;justify-content:center;position:fixed;left:0;top:45dvh;z-index:calc(var(--z-hud) - 10);width:1.4rem;height:2.5rem;padding:0;background:var(--surface-panel);border:1px solid var(--border-panel);border-left:none;border-radius:0 var(--radius-sm) var(--radius-sm) 0;box-shadow:0 2px 8px var(--shadow-deep);color:var(--text-muted);opacity:.85;cursor:pointer;touch-action:manipulation;transition:color var(--duration-micro) var(--ease-out),opacity var(--duration-micro) var(--ease-out)}.edge-handle:hover{color:var(--text-primary);opacity:1}.edge-handle:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.edge-handle svg{width:1rem;height:1rem}.edge-handle--active:after{content:"";position:absolute;top:.3rem;right:.2rem;width:6px;height:6px;border-radius:50%;background:var(--led-amber);box-shadow:0 0 6px var(--led-amber)}}.fig-zoom{width:100vw;height:100dvh;max-width:none;max-height:none;margin:0;padding:0;border:0;background:var(--surface-sheet);overflow:auto;touch-action:pan-x pan-y pinch-zoom}.fig-zoom::backdrop{background:#0009}.fig-zoom-close{position:sticky;top:.5rem;left:.5rem;z-index:1;margin:.5rem;padding:.5rem .9rem;border:1px solid var(--sheet-border);border-radius:8px;background:var(--sheet-head);color:var(--sheet-text);font:600 .875rem / 1 var(--font-read)}.fig-zoom figure{margin:0;padding:0 1rem 2rem;width:max-content}.fig-zoom svg,.fig-zoom img{display:block;height:auto}@media(max-width:768px){joo-prose-content img{cursor:zoom-in}}.fig-zoom svg text{font-family:var(--font-read)}joo-prose-content .fig figcaption{margin-top:.4rem;font-size:.85em;text-align:center;color:var(--sheet-text-muted)}joo-prose-content.is-plain{counter-reset:lib-h2}joo-prose-content.is-plain .doc-banner{display:block;width:100%;height:5.5rem;margin:0 0 1.6rem;object-fit:cover;border-radius:12px}joo-prose-content.is-plain h2{counter-increment:lib-h2;display:flex;align-items:center;gap:.6rem;padding-top:.4rem}joo-prose-content.is-plain h2:before{content:counter(lib-h2,decimal-leading-zero);flex:none;display:grid;place-items:center;min-width:2rem;height:2rem;padding-inline:.3rem;font:700 .7em var(--font-mono);color:#fff;background:var(--p-cyan-700);border-radius:8px;transform:rotate(-4deg)}joo-prose-content.is-plain h2.has-num:before{display:none}joo-prose-content.is-plain h2:nth-of-type(3n+2):before{background:var(--p-magenta-700)}joo-prose-content.is-plain h2:nth-of-type(3n):before{background:var(--p-link-600)}joo-prose-content.is-plain ul{list-style:none;padding-left:.4rem}joo-prose-content.is-plain ul>li{position:relative;padding-left:1.4rem}joo-prose-content.is-plain ul>li:before{content:"";position:absolute;left:0;top:.5em;width:.6rem;height:.6rem;background:var(--p-cyan-700);border-radius:50%;box-shadow:0 0 0 4px color-mix(in srgb,var(--p-cyan-700) 16%,transparent)}joo-prose-content.is-plain blockquote{padding:.8rem 1rem .2rem 1.1rem;color:var(--sheet-text);background:color-mix(in srgb,var(--sheet-quote) 8%,white);border-radius:0 10px 10px 0}joo-prose-content.is-plain tbody tr:nth-child(2n) td{background:color-mix(in srgb,var(--sheet-head) 60%,white)}joo-prose-content.is-plain hr{width:6rem;height:4px;margin:2.5rem auto;background:linear-gradient(90deg,var(--p-cyan-700) 60%,var(--p-magenta-700) 60%);border:0;border-radius:2px}@media(max-width:768px){joo-prose-content pre{margin-inline:calc(var(--space-4) * -1);border-radius:0;white-space:pre;overflow-x:auto}joo-prose-content table{display:block;overflow-x:auto;font-size:.75em}}joo-topic-tree .p-iconfield,joo-topic-tree .p-tree-filter{display:none}.joo-corner-brackets{position:relative}.joo-corner-brackets:after{content:"";position:absolute;inset:-5px;pointer-events:none;--b: var(--bracket);background:linear-gradient(var(--b),var(--b)) top left / 16px 2px,linear-gradient(var(--b),var(--b)) top left / 2px 16px,linear-gradient(var(--b),var(--b)) top right / 16px 2px,linear-gradient(var(--b),var(--b)) top right / 2px 16px,linear-gradient(var(--b),var(--b)) bottom left / 16px 2px,linear-gradient(var(--b),var(--b)) bottom left / 2px 16px,linear-gradient(var(--b),var(--b)) bottom right / 16px 2px,linear-gradient(var(--b),var(--b)) bottom right / 2px 16px;background-repeat:no-repeat;filter:drop-shadow(0 0 4px var(--glow-cyan))}@media(max-width:767px){.joo-corner-brackets:after{display:none}}joo-paper-sheet :focus-visible{outline-color:var(--focus-ring-sheet)}.joo-filter-drawer,.joo-library-drawer,.joo-menu-sheet{border-width:1px;border-radius:var(--radius-panel)}.joo-library-drawer{width:min(22rem,85vw)}.joo-menu-sheet{border-bottom:none;border-radius:var(--radius-panel) var(--radius-panel) 0 0}.joo-filter-drawer .p-drawer-close-button,.joo-library-drawer .p-drawer-close-button,.joo-menu-sheet .p-drawer-close-button{color:var(--text-muted)}.joo-filter-drawer .p-drawer-close-button:hover,.joo-library-drawer .p-drawer-close-button:hover,.joo-menu-sheet .p-drawer-close-button:hover{color:var(--text-primary)}.joo-record-grid{width:100%;table-layout:auto;border-collapse:collapse;font-size:var(--text-sm);line-height:1.5}.joo-record-grid th{font:600 var(--text-2xs) / 1.2 var(--font-display);letter-spacing:.12em;text-transform:uppercase;text-align:left;white-space:nowrap;padding:var(--space-2) var(--space-3);color:var(--text-muted);background:var(--surface-readout);border-bottom:1px solid var(--border-panel)}.joo-record-grid th.p-sortable-column{cursor:pointer;-webkit-user-select:none;user-select:none;transition:color var(--duration-fast, .12s) var(--ease-out, ease-out)}.joo-record-grid th.p-sortable-column:hover{color:var(--text-primary)}.joo-record-grid th.p-sortable-column.p-sortable-column-sorted{color:var(--color-cyan, #00f0ff)}.joo-record-grid th .p-sortable-column-icon,.joo-record-grid th p-sort-icon,.joo-record-grid th p-sorticon{display:inline-flex;align-items:center;margin-left:var(--space-1);vertical-align:middle}.joo-record-grid td{padding:var(--space-2) var(--space-3);vertical-align:top;border-bottom:1px solid var(--border-subtle)}.joo-record-grid td[data-col=name],.joo-record-grid td[data-col=type]{overflow-wrap:anywhere}.joo-record-grid tbody tr:last-child td{border-bottom:0}.joo-record-grid tbody tr:hover td{background:var(--surface-row-hover)}.joo-record-grid td[data-col=ver]{font-family:var(--font-mono);font-size:var(--text-xs);font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--text-muted)}.joo-record-grid td[data-col=desc]{min-width:0;max-width:none;color:var(--text-muted);overflow-wrap:anywhere}.joo-record-grid td[data-col=act]{text-align:right}.joo-record-grid td[data-col=src]{font-family:var(--font-mono);font-size:var(--text-xs);white-space:nowrap}.joo-record-grid td[data-col=src] .src-repo{color:var(--text-muted);text-decoration:none}.joo-record-grid td[data-col=src] .src-repo:hover{color:var(--text-primary);text-decoration:underline}@media(max-width:1439px){.joo-record-grid [data-col=lang]{display:none}}@media(max-width:899px){.joo-record-grid [data-col=src]{display:none}}@media(max-width:767px){.joo-record-grid thead{display:block;position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.joo-record-grid,.joo-record-grid tbody{display:block}.joo-record-grid tr{display:grid;grid-template-columns:minmax(0,auto) minmax(0,auto) minmax(0,1fr) minmax(0,auto);grid-template-areas:"name name name trust" "desc desc desc desc" "type sig  ver  act";align-items:center;gap:var(--space-1) var(--space-3);padding:var(--space-3);border-bottom:1px solid var(--border-subtle)}.joo-record-grid tbody tr:last-child{border-bottom:0}.joo-record-grid td,.joo-record-grid tbody tr:hover td{display:block;padding:0;border:0;background:none}.joo-record-grid td[data-col=name]{grid-area:name}.joo-record-grid td[data-col=trust]{grid-area:trust;justify-self:end}.joo-record-grid td[data-col=type]{grid-area:type;font-size:var(--text-xs);color:var(--text-muted)}.joo-record-grid td[data-col=sig]{grid-area:sig}.joo-record-grid td[data-col=ver]{grid-area:ver}.joo-record-grid td[data-col=act]{grid-area:act}.joo-record-grid td[data-col=lang]{display:none}.joo-record-grid td[data-col=desc]{grid-area:desc;min-width:0;max-width:none;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin-bottom:var(--space-1)}}@media print{joo-horizon-backdrop,joo-heads-up-display-header,footer.shell-footer{display:none!important}html,body,joo-app-shell-layout,main.page,joo-markdown-tool-page,joo-paper-sheet,joo-prose-content,.mermaid,.mermaid svg{background:#fff!important;background-image:none!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}main.page{max-width:100%!important;width:100%!important;margin:0!important;padding:0!important}joo-paper-sheet{box-shadow:none!important;border:none!important;border-radius:0!important;margin:0!important;padding:0!important;max-width:100%!important;width:100%!important}joo-prose-content table{display:table!important;overflow:visible!important;width:100%!important}joo-prose-content pre{white-space:pre-wrap!important;word-break:break-word!important;overflow:visible!important}joo-prose-content code{background:var(--p-paper-200)!important}joo-prose-content a:after{content:none!important}h1,h2,h3,h4{break-after:avoid;page-break-after:avoid}pre,blockquote,table,.mermaid{break-inside:avoid;page-break-inside:avoid}@page{margin:1.5cm;background-color:#fff}}}
