.lab-index{min-height:100vh}.lab-hero{position:relative;overflow:hidden;padding-block:clamp(2.75rem,8vw,4.25rem);border-bottom:1px solid color-mix(in srgb,var(--accent) 16%,var(--color-border-subtle));background:linear-gradient(168deg,var(--color-wash-gold) 0%,var(--bg-primary) 42%,var(--bg-primary) 100%)}[data-theme=canonical] .lab-hero{background:linear-gradient(168deg,color-mix(in srgb,var(--color-wash-gold) 80%,var(--bg-primary)) 0%,var(--bg-primary) 48%,var(--bg-primary) 100%);border-bottom-color:color-mix(in srgb,var(--color-brand-gold) 22%,var(--color-border-subtle))}.lab-hero-layout{display:grid;gap:var(--space-xl);max-width:72rem;margin-inline:auto}@media(min-width:1024px){.lab-hero-layout{grid-template-columns:minmax(0,1.2fr) minmax(12rem,16rem);align-items:end;gap:var(--space-2xl)}}.lab-hero-copy{max-width:var(--text-measure-prose)}.lab-hero-title{margin:0 0 var(--space-md)}.lab-hero-description{margin:0;font-size:clamp(1.0625rem,2vw,1.25rem);line-height:1.55}.lab-hero-actions{display:flex;flex-direction:column;gap:var(--space-md);align-items:stretch}.lab-hero-cta{display:inline-flex;align-items:center;justify-content:center;min-height:2.75rem;padding:var(--space-sm) var(--space-lg);font-size:var(--text-body-sm-size);font-weight:700;text-align:center;text-decoration:none;color:var(--bg-primary);cursor:pointer;background:var(--accent);border:2px solid var(--accent);transition:background var(--transition-fast) var(--ease-out),border-color var(--transition-fast) var(--ease-out);touch-action:manipulation}.lab-hero-cta:hover{background:color-mix(in srgb,var(--accent) 88%,var(--text-primary));border-color:color-mix(in srgb,var(--accent) 88%,var(--text-primary))}.lab-hero-link-secondary{display:inline-flex;align-items:center;justify-content:center;min-height:2.75rem;padding:var(--space-sm) var(--space-md);font-size:var(--text-body-sm-size);font-weight:600;text-decoration:none;color:var(--text-primary);cursor:pointer;background:var(--card-bg);border:1px solid var(--color-border-subtle);transition:border-color var(--transition-fast) var(--ease-out);touch-action:manipulation}.lab-hero-link-secondary:hover{border-color:color-mix(in srgb,var(--accent) 40%,var(--color-border-medium))}.lab-shell{max-width:72rem;margin-inline:auto;padding:var(--space-section) var(--space-lg)}.lab-layout{display:grid;gap:var(--space-2xl)}@media(min-width:1024px){.lab-layout{grid-template-columns:minmax(11.5rem,13.5rem) minmax(0,1fr);gap:var(--space-3xl);align-items:start}}.lab-toc{height:-moz-fit-content;height:fit-content}@media(min-width:1024px){.lab-toc{position:sticky;top:5.5rem}}.lab-toc-title{margin:0 0 var(--space-md);font-family:var(--font-technical);font-size:var(--text-kicker-size);font-weight:600;letter-spacing:var(--text-kicker-tracking);text-transform:uppercase;color:var(--text-tertiary)}.lab-toc-list{display:flex;flex-direction:column;gap:var(--space-xs);margin:0;padding:0;list-style:none}@media(max-width:1023px){.lab-toc-list{flex-flow:row wrap;gap:var(--space-sm)}}.lab-toc-link{display:inline-flex;align-items:center;min-height:2.75rem;padding:.5rem .85rem;font-size:var(--text-caption-size);font-weight:600;text-decoration:none;color:var(--text-secondary);cursor:pointer;border:1px solid transparent;border-radius:999px;transition:color var(--transition-fast) var(--ease-out),border-color var(--transition-fast) var(--ease-out),background var(--transition-fast) var(--ease-out);touch-action:manipulation}.lab-toc-link:hover{color:var(--text-primary);border-color:var(--color-border-subtle);background:color-mix(in srgb,var(--accent) 6%,var(--card-bg))}.lab-toc-link--active{color:var(--text-primary);border-color:color-mix(in srgb,var(--accent) 45%,var(--color-border-subtle));background:color-mix(in srgb,var(--accent) 12%,var(--card-bg))}.lab-toc-link:focus-visible{outline:var(--focus-ring-width) solid var(--color-focus-ring);outline-offset:2px}[data-theme=canonical] .lab-toc-link{border-radius:0}.lab-main{display:flex;flex-direction:column;gap:clamp(var(--space-2xl),6vw,var(--space-section-lg))}.lab-section{scroll-margin-top:6rem}.lab-section-head{display:flex;align-items:baseline;gap:var(--space-md);margin-bottom:var(--space-lg)}.lab-section-index{flex-shrink:0;font-family:var(--font-technical);font-size:var(--text-caption-size);font-weight:700;letter-spacing:.12em;color:var(--accent)}[data-theme=canonical] .lab-section-index{color:var(--color-link)}.lab-section-title{margin:0;font-family:var(--font-display);font-size:clamp(1.65rem,3.5vw,2.25rem);font-weight:700;line-height:1.12;letter-spacing:-.015em;color:var(--text-primary)}.lab-section-intro{max-width:var(--text-measure-prose);margin-bottom:var(--space-xl)}.lab-section-intro :global(p){margin:0;font-size:var(--text-body-lg-size);line-height:1.6;color:var(--text-secondary)}.lab-tool-block{display:grid;gap:var(--space-xl);margin-bottom:var(--space-xl)}@media(min-width:900px){.lab-tool-block--split{grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);align-items:start;gap:var(--space-2xl)}}.lab-tool-panel{min-width:0}.lab-tool-panel :global(.emulsion-gauge),.lab-tool-panel :global(.ratio-calculator){margin:0}.lab-section-body{max-width:var(--text-measure-prose)}.lab-section-body :global(h3){margin:0 0 var(--space-md);font-family:var(--font-display);font-size:var(--text-title-size);font-weight:600;color:var(--text-primary)}.lab-section-body :global(ol),.lab-section-body :global(ul){display:flex;flex-direction:column;gap:var(--space-md);margin:0;padding:0;list-style:none}.lab-section-body :global(ol){counter-reset:lab-step}.lab-section-body :global(ol>li){counter-increment:lab-step;padding-left:2.75rem;position:relative;color:var(--text-secondary);line-height:1.6}.lab-section-body :global(ol>li:before){content:counter(lab-step,decimal-leading-zero);position:absolute;left:0;top:.1rem;font-family:var(--font-technical);font-size:var(--text-caption-size);font-weight:700;letter-spacing:.06em;color:var(--accent)}[data-theme=canonical] .lab-section-body :global(ol>li:before){color:var(--color-link)}.lab-section-body :global(ul>li){padding-left:1.25rem;position:relative;color:var(--text-secondary);line-height:1.6}.lab-section-body :global(ul>li:before){content:"";position:absolute;left:0;top:.65em;width:.4rem;height:.4rem;border-radius:50%;background:color-mix(in srgb,var(--accent) 70%,transparent)}.lab-section-body :global(strong){color:var(--text-primary)}.lab-prose-block{max-width:var(--text-measure-prose)}.lab-prose-block :global(p){margin:0 0 var(--space-lg);font-size:var(--text-body-lg-size);line-height:1.6;color:var(--text-secondary)}.lab-prose-block :global(p:last-child){margin-bottom:0}.lab-prose-block :global(h3){margin:var(--space-xl) 0 var(--space-md);font-family:var(--font-display);font-size:var(--text-title-size);font-weight:600;color:var(--text-primary)}.lab-failures-grid{display:grid;gap:var(--space-lg);grid-template-columns:repeat(auto-fit,minmax(min(100%,17.5rem),1fr))}.lab-failure-item{display:flex;flex-direction:column;gap:var(--space-sm);padding:var(--space-lg);background:color-mix(in srgb,var(--accent) 6%,var(--card-bg));border:1px solid color-mix(in srgb,var(--accent) 28%,var(--color-border-subtle))}[data-theme=canonical] .lab-failure-item{border-radius:0;background:color-mix(in srgb,var(--color-wash-gold) 35%,var(--card-bg));border-color:color-mix(in srgb,var(--color-brand-gold) 30%,var(--color-border-subtle))}.lab-failure-title{margin:0;font-family:var(--font-display);font-size:1.125rem;font-weight:700;color:var(--text-primary)}.lab-failure-desc{margin:0;flex:1;font-size:var(--text-body-sm-size);line-height:1.55;color:var(--text-secondary)}.lab-failure-fix{margin:0;padding-top:var(--space-md);font-size:var(--text-body-sm-size);line-height:1.5;color:var(--text-primary);border-top:1px solid var(--color-border-subtle)}.lab-failure-fix :global(strong){color:var(--accent)}[data-theme=canonical] .lab-failure-fix :global(strong){color:var(--color-link)}@media(max-width:767px){.lab-shell{padding-inline:var(--space-md)}.lab-section-head{flex-direction:column;align-items:flex-start;gap:var(--space-xs)}}@media(prefers-reduced-motion:reduce){.lab-hero-cta,.lab-hero-link-secondary,.lab-toc-link{transition:none}}
