#lab-articles,.lab-reading-guide{scroll-margin-top:110px}.lab-reading-guide{margin-top:32px;padding-block:20px;border-block:1px solid var(--line)}.lab-reading-guide>header{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:12px}.lab-reading-guide .lab-guide-intro{margin-top:12px;max-width:76ch;font-size:13px}.lab-reading-tracks{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:24px;gap:24px;margin-top:20px}.lab-reading-tracks>section{min-width:0;padding-left:20px;border-left:1px solid var(--line)}.lab-reading-tracks>section:first-child{padding-left:0;border-left:0}.lab-reading-tracks h3{margin:0;font-size:14px;font-weight:500}.lab-path-continuation .lab-guide-qualification,.lab-reading-tracks p{font-size:12px;line-height:1.6}.lab-reading-tracks .lab-guide-audience{margin-top:8px}.lab-guide-qualification{color:var(--sage-text);margin-top:6px}.lab-reading-tracks ol{list-style:none;counter-reset:reading-step;padding:0;margin:14px 0 0}.lab-reading-tracks li{counter-increment:reading-step;position:relative;padding:10px 0 10px 28px;border-top:1px solid var(--line)}.lab-reading-tracks li:before{content:counter(reading-step,decimal-leading-zero);position:absolute;left:0;top:12px;font-size:9px;color:var(--accent)}.lab-reading-tracks li p{margin-top:5px}.lab-guide-link{font-size:13px;line-height:1.5;color:var(--text);text-decoration:underline;-webkit-text-decoration-color:var(--line-strong);text-decoration-color:var(--line-strong);text-underline-offset:4px;transition:color var(--motion-fast) var(--ease-standard)}.lab-guide-link:is(:hover,:focus-visible){color:var(--accent)}#lab-articles:focus-visible,.lab-guide-link:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.lab-path-continuation{margin-block:36px;padding-block:20px;border-block:1px solid var(--line)}.lab-path-continuation h2{font-size:18px}.lab-path-continuation>.lab-guide-link{display:inline-block;margin-top:12px}@media (max-width:767px){.lab-reading-tracks{grid-template-columns:1fr;gap:18px}.lab-reading-tracks>section,.lab-reading-tracks>section:first-child{border-left:0;padding-left:0}}.lab-filters{display:flex;flex-wrap:wrap;gap:8px;margin:36px 0 18px}.lab-filters button{padding:10px 14px;min-height:44px;border:1px solid var(--line);background:var(--transparent);color:var(--muted);font:inherit;font-size:12px;cursor:pointer}.lab-filters button[aria-pressed=true]{color:var(--on-accent);background:var(--accent);border-color:var(--accent)}.lab-filters button:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.publication-meta{display:flex;flex-wrap:wrap;gap:12px 24px;margin-bottom:18px;color:var(--accent)}.publication-meta span{color:var(--muted)}.lab-index-list .publication-tags{margin-top:16px;font-size:10px}.lab-index-list h2 a{text-decoration-thickness:1px;text-underline-offset:6px}.lab-index-list h2 a:hover{color:var(--accent)}.lab-index-list [hidden]{display:none}.lab-index-list li.has-visual{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);grid-gap:24px clamp(32px,5vw,72px);gap:24px clamp(32px,5vw,72px);align-items:center}.lab-index-list li[hidden]{display:none}.lab-row-body{min-width:0}.lab-index-list h2 a{transition:color .2s ease}.lab-index-list li:focus-within h2 a,.lab-index-list li:hover h2 a{color:var(--heading-hover)}.lab-index-list li h2 a:hover{color:var(--accent)}.lab-visual{position:relative;border:1px solid var(--line);background-color:var(--bg);background-image:linear-gradient(var(--architecture-grid) 1px,var(--transparent) 1px),linear-gradient(90deg,var(--architecture-grid) 1px,var(--transparent) 1px);background-size:20px 20px;background-position:-1px -1px;opacity:.82;transition:opacity .25s ease,border-color .25s ease}.lab-index-list li:focus-within .lab-visual,.lab-index-list li:hover .lab-visual{opacity:1;border-color:var(--line-strong)}.lab-visual svg{display:block;width:100%;height:auto;font-family:var(--font);overflow:visible}.lab-visual .lv-caption,.lab-visual .lv-lane{fill:var(--architecture-muted);font-size:7.5px;letter-spacing:1.4px}.lab-visual .lv-lane{fill:var(--architecture-text)}.lab-visual .lv-rule{stroke:var(--architecture-line);stroke-width:.6;stroke-dasharray:2 3}.lab-visual .lv-node rect{fill:var(--architecture-node);stroke:var(--architecture-line);stroke-width:1;transition:stroke .25s ease,fill .25s ease}.lab-visual .lv-node text{fill:var(--strong-text);font-size:8.5px;font-weight:600;letter-spacing:.6px;text-anchor:middle}.lab-visual .lv-node.lv-dashed rect{fill:var(--transparent);stroke-dasharray:3 3}.lab-visual .lv-node.lv-dashed text{fill:var(--architecture-muted)}.lab-visual .lv-active rect{stroke:var(--accent);stroke-opacity:.55}.lab-visual .lv-pulse{fill:var(--accent);opacity:.45;transition:opacity .25s ease}.lab-visual .lv-link .lv-wire{stroke:var(--architecture-arrow);stroke-width:1;stroke-dasharray:4 3;stroke-dashoffset:0;transition:stroke-dashoffset .6s ease,stroke .25s ease}.lab-visual .lv-link polygon{fill:var(--architecture-arrow);transition:fill .25s ease}.lab-visual .lv-link.lv-dashed line{stroke-dasharray:1.5 3;stroke:var(--architecture-line)}.lab-index-list li:focus-within .lv-link .lv-wire,.lab-index-list li:hover .lv-link .lv-wire{stroke-dashoffset:-7}.lab-index-list li:focus-within .lv-active rect,.lab-index-list li:hover .lv-active rect{fill:var(--accent-wash);stroke:var(--accent);stroke-opacity:1}.lab-index-list li:focus-within .lv-pulse,.lab-index-list li:hover .lv-pulse{opacity:1}.lab-index-list li:focus-within .lv-link-active .lv-wire,.lab-index-list li:hover .lv-link-active .lv-wire{stroke:var(--accent)}.lab-index-list li:focus-within .lv-link-active polygon,.lab-index-list li:hover .lv-link-active polygon{fill:var(--accent)}.lab-visual-image img{display:block;width:100%;height:auto}.lab-visual-css{aspect-ratio:2/1;display:grid;grid-template:auto 1fr auto/1fr auto;padding:14px 18px;color:var(--architecture-muted);font-size:8px;letter-spacing:1.4px}.lv-css-theme{text-align:right}.lv-css-number{grid-column:1/-1;align-self:center;font-family:var(--display);font-size:clamp(56px,7vw,92px);line-height:1;color:var(--architecture-text);letter-spacing:-1px}.lv-css-rule{grid-column:1/-1;height:1px;background:linear-gradient(90deg,var(--accent) 0 18%,var(--architecture-line) 18% 100%)}@media (max-width:860px){.lab-index-list li.has-visual{grid-template-columns:minmax(0,1fr);gap:20px}.lab-visual{opacity:1}.lab-visual svg,.lab-visual-css{max-height:180px}}@media (prefers-reduced-motion:reduce){.lab-visual,.lab-visual *{transition:none!important}.lab-index-list li:focus-within .lv-link .lv-wire,.lab-index-list li:hover .lv-link .lv-wire{stroke-dashoffset:0}}@media print{.lab-filters,.lab-visual{display:none}}.lab-toc{margin:28px 0;max-width:850px;border-block:1px solid var(--line);padding-block:16px}.lab-toc summary{cursor:pointer;min-height:32px;font-size:14px}.lab-toc ol{padding:16px 0 0 24px}.lab-toc li{margin-bottom:10px;font-size:13px}.lab-toc a{text-decoration:underline;text-underline-offset:4px}.lab-article-body section{scroll-margin-top:110px}.lab-article-body pre{max-width:100%}.lab-article{overflow-wrap:anywhere}.lab-article pre{overflow-wrap:normal}@keyframes lab-fade{0%{opacity:0}}@keyframes lab-row-in{0%{opacity:0;transform:translateY(8px)}}@keyframes lab-failsafe{to{opacity:1;transform:none}}@keyframes lab-series{0%,to{color:var(--muted)}35%,60%{color:var(--accent)}}@keyframes lab-trace-draw{0%{opacity:1;stroke-dashoffset:1}70%{opacity:1;stroke-dashoffset:0}to{opacity:0;stroke-dashoffset:0}}@keyframes lab-trace-signal{0%{opacity:1;stroke-dashoffset:.3}to{opacity:1;stroke-dashoffset:-1}}@keyframes lab-node-in{0%{opacity:0;transform:translateY(3px)}}@keyframes lab-node-flash{40%{stroke:var(--accent)}}@keyframes lab-activate{45%{fill:var(--accent-wash);stroke:var(--accent);stroke-opacity:1}}@keyframes lab-pulse{45%{opacity:1}}.lab-index-list{overflow-anchor:none}.lab-index-list>li{position:relative;border-top:0}.lab-index-list>li:before{content:"";position:absolute;inset:0 0 auto;height:1px;background:var(--line);transform-origin:left center;transition:background-color var(--motion-normal) var(--ease-standard)}.lab-index-list>li:is(:hover,:focus-within):before{background:var(--line-strong)}.publication-meta .lab-track{color:var(--accent)}.publication-meta .lab-category,.publication-meta .lab-series{color:var(--muted);transition:color var(--motion-normal) var(--ease-standard)}.lab-index-list>li:is(:hover,:focus-within) .lab-series{color:var(--accent)}.lab-index-list>li:is(:hover,:focus-within) .lab-category{color:color-mix(in srgb,var(--muted),var(--accent) 45%)}.lab-row-arrow{display:inline-block;color:var(--muted);transition:transform var(--motion-normal) var(--ease-standard),color var(--motion-normal) var(--ease-standard)}.lab-index-list>li:is(:hover,:focus-within) .lab-row-arrow{color:var(--accent);transform:translate(3px,-3px)}.lab-filters{position:relative;isolation:isolate}.lab-filters button{position:relative;z-index:1;transition:color .2s var(--ease-standard),background-color .2s var(--ease-standard),border-color .2s var(--ease-standard)}.lab-filters button:not([aria-pressed=true]):not(:disabled):hover{color:var(--strong-text);border-color:var(--line-strong)}.lab-filter-indicator{display:none}.lab-filters[data-indicator] .lab-filter-indicator{display:block;position:absolute;top:0;left:0;width:1px;height:1px;background:var(--accent);transform-origin:0 0;transition:transform .22s var(--ease-standard);pointer-events:none}.lab-filters[data-indicator] button[aria-pressed=true]{background:var(--transparent);border-color:var(--transparent);color:var(--on-accent)}.lab-visual .lv-trace{fill:none;stroke:var(--architecture-text);stroke-width:1.4;stroke-dasharray:1 1;stroke-dashoffset:1;opacity:0}.lab-visual .lv-dashed .lv-trace{display:none}@media (prefers-reduced-motion:no-preference){.lab-filters button{animation:motion-rise .36s var(--ease-enter) calc(.36s + var(--i, 0) * 50ms) backwards}.lab-intro>.lab-count{animation:lab-fade .3s ease-out .56s backwards}.lab-filter-indicator{animation:lab-fade .36s var(--ease-enter) .36s backwards}.lab-filters:focus-within :is(button,.lab-filter-indicator){animation:none}html[data-lab-motion] .lab-index-list>li:not([data-lab-reveal]):before{transform:scaleX(0)}html[data-lab-motion] .lab-index-list>li:not([data-lab-reveal]) :is(.lab-row-body>*,.lab-visual){opacity:0}html[data-lab-motion=pending] .lab-index-list>li:not([data-lab-reveal]) :is(.lab-row-body>*,.lab-visual),html[data-lab-motion=pending] .lab-index-list>li:not([data-lab-reveal]):before{animation:lab-failsafe 1ms linear 2.5s forwards}.lab-index-list>li[data-lab-reveal=play]:before{animation:motion-rule .56s var(--ease-enter) var(--row-delay,0s) backwards}.lab-index-list>li[data-lab-reveal=play] .lab-row-body>*{animation:lab-row-in .42s var(--ease-enter) calc(var(--row-delay, 0s) + 80ms) backwards}.lab-index-list>li[data-lab-reveal=play] .lab-row-body>h2{animation-delay:calc(var(--row-delay, 0s) + .13s)}.lab-index-list>li[data-lab-reveal=play] .lab-row-body>h2+p{animation-name:lab-fade;animation-delay:calc(var(--row-delay, 0s) + .19s)}.lab-index-list>li[data-lab-reveal=play] .lab-row-body>.publication-tags{animation-name:lab-fade;animation-delay:calc(var(--row-delay, 0s) + .25s)}.lab-index-list>li[data-lab-reveal=play] .lab-series{animation:lab-series 1.1s var(--ease-standard) calc(var(--row-delay, 0s) + .22s) backwards}.lab-index-list>li[data-lab-reveal=play] .lab-visual{animation:lab-fade .48s ease-out calc(var(--row-delay, 0s) + .12s) backwards}.lab-index-list>li[data-lab-reveal=play]{--flow:calc(var(--row-delay, 0ms) + 200ms);--beat:95ms}.lab-index-list>li[data-lab-reveal=play] .lv-node{animation:lab-node-in .38s var(--ease-enter) calc(var(--flow) + var(--s, 0) * var(--beat)) backwards}.lab-index-list>li[data-lab-reveal=play] .lv-link{animation:lab-fade .32s ease-out calc(var(--flow) + (var(--s, 0) + .6) * var(--beat)) backwards}.lab-index-list>li[data-lab-reveal=play] .lv-trace{animation:lab-trace-draw .46s var(--ease-standard) calc(var(--flow) + (var(--s, 0) + .6) * var(--beat)) backwards}.lab-index-list>li[data-track="AEM Cloud"][data-lab-reveal=play]{--beat:120ms}.lab-index-list>li[data-track="AEM Cloud"][data-lab-reveal=play] .lv-trace{stroke:var(--accent)}.lab-index-list>li[data-track="AEM Cloud"][data-lab-reveal=play] .lv-node:not(.lv-dashed,.lv-active) rect{animation:lab-node-flash .52s var(--ease-standard) calc(var(--flow) + var(--s, 0) * var(--beat) + .12s) backwards}.lab-index-list>li[data-track="Search & AI"][data-lab-reveal=play] .lv-trace{stroke:var(--accent);stroke-dasharray:.3 1.3;animation-name:lab-trace-signal;animation-duration:.3s;animation-timing-function:linear}.lab-index-list>li[data-lab-reveal=play] .lv-active rect{animation:lab-activate .9s var(--ease-standard) calc(var(--flow) + var(--end, 0) * var(--beat)) backwards}.lab-index-list>li[data-lab-reveal=play] .lv-pulse{animation:lab-pulse .9s var(--ease-standard) calc(var(--flow) + var(--end, 0) * var(--beat)) backwards}.lab-related.motion-enter li:before{animation:motion-rule .52s var(--ease-enter) calc(.12s + var(--i, 0) * 50ms) backwards}.lab-related.motion-enter li>a{animation:motion-rise .42s var(--ease-enter) calc(.17s + var(--i, 0) * 50ms) backwards}@media (max-width:767px){@keyframes lab-row-in{0%{opacity:0;transform:translateY(4px)}}.lab-index-list>li[data-lab-reveal=play] .lv-trace,.lab-index-list>li[data-lab-reveal=play] :is(.lv-node,.lv-link,.lv-active rect,.lv-pulse,.lv-node rect){animation:none}}}.lab-index-list>li:focus-within *,.lab-index-list>li:focus-within:before{animation:none!important}html[data-lab-motion] .lab-index-list>li:focus-within :is(.lab-row-body>*,.lab-visual){opacity:1}html[data-lab-motion] .lab-index-list>li:focus-within:before{transform:none}@media (prefers-reduced-motion:reduce){.lab-filters button,.lab-index-list h2 a,.lab-row-arrow,.publication-meta .lab-category,.publication-meta .lab-series{transition:color .16s linear!important}.lab-index-list>li:is(:hover,:focus-within) .lab-row-arrow{transform:none}}.lab-related ul{list-style:none;padding:0}.lab-related li{position:relative}.lab-related li:before{content:"";position:absolute;inset:0 0 auto;height:1px;background:var(--line);transform-origin:left center}@media print{.lab-index-list>li *,.lab-index-list>li:before{animation:none!important;opacity:1!important;transform:none!important}}