.shader-performance-lab{display:grid;gap:3rem;padding-bottom:7rem}.shader-performance-lab__stage{display:grid;grid-template-columns:minmax(0,1fr) minmax(17.5rem,21rem);gap:.85rem;align-items:start;min-width:0;overflow:clip;border:1px solid var(--gray-700);border-radius:1.25rem;background:#080c12;box-shadow:var(--shadow-lg)}.shader-performance-lab__scene-column{position:relative;min-width:0}.shader-performance-lab__scene-column>.lab-accessible-viewport{min-width:0}.shader-performance-viewport{position:relative;min-width:0;min-height:43rem;overflow:hidden;border-radius:1.2rem 0 0;background:#080c12}.shader-performance-viewport>div:first-child,.shader-performance-viewport canvas{position:absolute!important;inset:0;display:block;width:100%!important;height:100%!important}.shader-performance-viewport--fallback{display:grid!important;place-content:center;gap:.5rem;padding:2rem;color:var(--gray-200);text-align:center}.shader-performance-viewport--fallback p{max-width:34ch;margin:0 auto;color:var(--gray-400)}.shader-performance-viewport__caption{position:absolute;left:1rem;bottom:1rem;z-index:2;display:flex;flex-wrap:wrap;gap:.4rem .8rem;color:#e8f1eeb8;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.68rem;pointer-events:none}.shader-performance-viewport__caption span{padding:.28rem .45rem;border:1px solid rgba(232,241,238,.16);border-radius:999px;background:#080c129e;backdrop-filter:blur(6px)}.shader-performance-lab__stage-label{position:absolute;left:1rem;top:1rem;z-index:2;display:grid;gap:.25rem;color:#f0f4f0;pointer-events:none;text-shadow:0 1px 8px #080c12}.shader-performance-lab__stage-label span{color:#d99bc3;font-size:.68rem;font-weight:750;letter-spacing:.12em}.shader-performance-lab__stage-label strong{font-size:.82rem;font-weight:650}.shader-performance-evidence{display:grid;min-width:0;gap:.65rem;padding:.75rem;border:1px solid rgba(232,241,238,.2);border-radius:.75rem;color:#e8f1ee;background:#0b1116;box-shadow:0 12px 28px #0000003d}.shader-performance-lab__evidence-flow{min-width:0}.shader-performance-lab__evidence-flow .shader-performance-evidence{width:100%}.shader-performance-evidence__heading{display:flex;flex-wrap:wrap;gap:.25rem .75rem;align-items:baseline;justify-content:space-between}.shader-performance-evidence__heading span{color:#d99bc3;font-size:.68rem;font-weight:800;letter-spacing:.08em}.shader-performance-evidence__heading strong{color:#e8f1eed1;font-size:.75rem}.shader-performance-evidence__scene{display:block;width:100%;max-height:10rem;border-radius:.5rem;background:#ffffff09}.shader-performance-evidence__scene text{fill:#e8f1eec7;font-family:ui-sans-serif,system-ui,sans-serif;font-size:11px;font-weight:700}.shader-performance-evidence__scene .is-upload-packet{fill:#d99bc3}.shader-performance-evidence__scene .is-submission-mark{stroke:#9cd6b6;stroke-width:2}.shader-performance-evidence__scene .is-arrow{fill:none;stroke:#e8f1ee8c;stroke-width:2;stroke-dasharray:4 4}.shader-performance-evidence__scene .is-instance-mark{fill:#77b7d261;stroke:#77b7d2;stroke-width:1}.shader-performance-evidence__scene .is-overdraw-mark{fill:#d7a66d;stroke:#f3c88f;stroke-width:1}.shader-performance-evidence__scene .is-shader-pulse{fill:#f0a29440;stroke:#f0a294;stroke-width:2}.shader-performance-evidence__scene .is-texture-sample{fill:#9cd6b6}.shader-performance-timeline{min-width:0;padding-top:.65rem;border-top:1px solid rgba(232,241,238,.14);color:#e8f1ee;font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.shader-performance-timeline__heading{display:flex;gap:.75rem;justify-content:space-between;align-items:center;font-size:.67rem}.shader-performance-timeline__heading span{color:#d99bc3;font-weight:750;letter-spacing:.08em}.shader-performance-timeline__heading strong{color:#9cd6b6;font-size:.72rem;font-variant-numeric:tabular-nums}.shader-performance-timeline__heading strong.is-over{color:#f0a294}.shader-performance-timeline__segments{display:grid;gap:.28rem;margin-top:.55rem}.shader-performance-timeline__scale{position:relative;height:.8rem;margin-top:.55rem;overflow:visible;border-radius:999px;background:#e8f1ee1a}.shader-performance-timeline__scale>i{position:absolute;inset:0 auto 0 0;border-radius:inherit;background:linear-gradient(90deg,#9cd6b6,#d7a66d 72%,#f0a294)}.shader-performance-timeline__scale>span{position:absolute;z-index:1;top:-.25rem;bottom:-.25rem;width:2px;background:#f4f0d7;box-shadow:0 0 0 2px #080c12cc}.shader-performance-timeline__segments>div{display:grid;grid-template-columns:7.5rem minmax(0,1fr) 4.2rem;gap:.45rem;align-items:center;font-size:.62rem}.shader-performance-timeline__segments>div>span{overflow:hidden;color:#e8f1eec2;text-overflow:ellipsis;white-space:nowrap}.shader-performance-timeline__segments i{display:block;min-width:2px;height:.38rem;border-radius:999px;background:#71808a}.shader-performance-timeline__segments i.is-upload{background:#d99bc3}.shader-performance-timeline__segments i.is-submission{background:#9cd6b6}.shader-performance-timeline__segments i.is-vertex{background:#77b7d2}.shader-performance-timeline__segments i.is-fragment{background:#d7a66d}.shader-performance-timeline__segments small{color:#e8f1eed1;text-align:right;font-size:inherit;font-variant-numeric:tabular-nums}.shader-performance-timeline__overlap-note{display:block;margin-top:.5rem;color:#e8f1ee9e;font-size:.62rem;line-height:1.45}.shader-performance-timeline>p{margin:.5rem 0 0;color:#e8f1eeb3;font-size:.62rem;text-align:right}.shader-performance-timeline>p.is-within{color:#9cd6b6}.shader-performance-timeline>p.is-over{color:#f0a294}.shader-performance-controls{position:relative;width:100%;min-width:0;margin:.75rem .75rem .75rem 0;color:#e8f1ee;border:1px solid rgba(232,241,238,.2);border-radius:.75rem;background:#0b1116;box-shadow:0 16px 34px #00000042;backdrop-filter:blur(15px)}.shader-performance-controls__toggle{width:100%;min-height:44px;display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.55rem .7rem;border:0;border-radius:.72rem;color:inherit;background:transparent;text-align:left;cursor:pointer}.shader-performance-controls__toggle:hover,.shader-performance-controls__toggle:focus-visible{background:#ffffff12}.shader-performance-controls__toggle:focus-visible,.shader-performance-button:focus-visible,.shader-performance-lesson button:focus-visible{outline:2px solid #e6add4;outline-offset:2px}.shader-performance-controls__toggle small{display:block;color:#d99bc3;font-size:.6rem;font-weight:750;letter-spacing:.08em}.shader-performance-controls__toggle strong{display:block;margin-top:.2rem;font-size:.79rem}.shader-performance-controls__toggle>span:last-child{color:#d99bc3;font-size:1.25rem}.shader-performance-controls__body{padding:0 .7rem .7rem}.shader-performance-controls__status{display:flex;align-items:center;justify-content:flex-start;gap:.5rem;padding:.45rem .1rem .6rem;color:#aebbb6;font-size:.65rem}.shader-performance-controls__status .is-pending{color:#f0c987}.shader-performance-toggle{display:inline-flex;min-height:44px;align-items:center;gap:.32rem;color:#aebbb6;cursor:pointer}.shader-performance-controls input{accent-color:#d99bc3}.shader-performance-controls input:focus-visible,.shader-performance-controls select:focus-visible{outline:2px solid #e6add4;outline-offset:2px}.shader-performance-select-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(8.5rem,1.05fr);align-items:center;gap:.5rem;min-height:32px;color:#aebbb6;font-size:.68rem}.shader-performance-select-row select{min-width:0;width:100%;min-height:44px;padding:.25rem .4rem;color:#e8f1ee;border:1px solid rgba(232,241,238,.16);border-radius:.35rem;background:#ffffff12;font:inherit}.shader-performance-controls fieldset{display:grid;gap:.35rem;margin:.55rem 0 0;padding:.5rem .5rem .55rem;border:1px solid rgba(232,241,238,.12);border-radius:.5rem}.shader-performance-controls legend{padding-inline:.3rem;color:#d99bc3;font-size:.64rem;font-weight:700}.shader-performance-range{display:grid;gap:.15rem;color:#aebbb6;font-size:.67rem}.shader-performance-range>span{display:flex;justify-content:space-between;gap:.5rem}.shader-performance-range output{color:#e8f1ee;font-variant-numeric:tabular-nums}.shader-performance-range input{width:100%;min-height:44px;accent-color:#d99bc3}.shader-performance-toggle{font-size:.68rem}.shader-performance-controls__actions{display:grid;grid-template-columns:1fr 1fr;gap:.4rem;margin-top:.65rem}.shader-performance-button{min-height:44px;padding:.45rem .6rem;border:1px solid rgba(232,241,238,.2);border-radius:.4rem;color:#e8f1ee;background:#ffffff12;font:inherit;font-size:.7rem;font-weight:700;cursor:pointer}.shader-performance-button:hover{background:#ffffff21}.shader-performance-button:disabled{opacity:.55;cursor:default}.shader-performance-button--quiet{color:#aebbb6;background:transparent}.shader-performance-button--primary{color:#180d15;border-color:#d99bc3;background:#d99bc3}.shader-performance-button--primary:hover{background:#e6add4}.shader-performance-controls__settings{margin-top:.45rem;border-top:1px solid rgba(232,241,238,.12)}.shader-performance-controls__settings summary{display:flex;min-height:44px;align-items:center;color:#aebbb6;font-size:.68rem;font-weight:700;cursor:pointer}.shader-performance-controls__settings summary:focus-visible{outline:2px solid #e6add4;outline-offset:2px}.shader-performance-controls__notes{display:grid;grid-template-columns:1fr;gap:.25rem;margin-top:.45rem}.shader-performance-lesson{display:grid;gap:1.1rem}.shader-performance-lesson__heading>span,.shader-performance-lesson__action>strong,.shader-performance-lesson__grid article>span,.shader-performance-lesson__snapshot>span,.shader-performance-lesson__interview>span{color:var(--accent-dark);font-size:.7rem;font-weight:750;letter-spacing:.09em;text-transform:uppercase}.shader-performance-lesson__heading h2{max-width:24ch;margin-top:.35rem;font-size:clamp(1.65rem,4vw,2.7rem);letter-spacing:-.035em}.shader-performance-lesson__heading p{max-width:68ch;margin-top:.45rem;color:var(--gray-400);line-height:1.65}.shader-performance-lesson__chooser{display:grid;gap:.4rem;max-width:46rem;padding-block:.75rem;border-block:1px solid var(--gray-700);color:var(--gray-400)}.shader-performance-lesson__chooser>span{color:var(--accent-dark);font-size:.7rem;font-weight:750;letter-spacing:.08em}.shader-performance-lesson__chooser select{width:100%;min-height:44px;padding:.55rem 2rem .55rem .7rem;border:1px solid var(--gray-600);border-radius:.45rem;color:var(--gray-100);background:var(--gray-999);font:inherit;font-size:.82rem;cursor:pointer}.shader-performance-lesson__chooser select:hover{border-color:var(--accent-regular)}.shader-performance-lesson__chooser select:focus-visible{outline:3px solid var(--accent-regular);outline-offset:2px}.shader-performance-lesson__action{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:.75rem;align-items:center;padding:.8rem .9rem;border:1px solid color-mix(in srgb,var(--accent-regular) 35%,var(--gray-700));border-radius:.7rem;background:color-mix(in srgb,var(--accent-regular) 7%,transparent)}.shader-performance-lesson__action p{color:var(--gray-300);line-height:1.55}.shader-performance-lesson__action button{min-height:44px;padding:.4rem .65rem;border:1px solid var(--accent-regular);border-radius:.4rem;color:var(--accent-dark);background:transparent;font-size:.72rem;font-weight:700;cursor:pointer}.shader-performance-lesson__grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--gray-700)}.shader-performance-lesson__grid article{min-height:8rem;padding:1rem;border-bottom:1px solid var(--gray-700);border-right:1px solid var(--gray-700)}.shader-performance-lesson__grid article:first-child{padding-left:0}.shader-performance-lesson__grid article:last-child{border-right:0}.shader-performance-lesson__grid article p{margin-top:.5rem;color:var(--gray-300);line-height:1.6}.shader-performance-lesson__snapshot{display:grid;grid-template-columns:auto auto 1fr;gap:.65rem;align-items:center;padding:.7rem .85rem;border:1px solid var(--gray-700);border-radius:.65rem;background:color-mix(in srgb,var(--gray-999) 90%,var(--accent-light))}.shader-performance-lesson__snapshot strong{color:var(--gray-100);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.72rem}.shader-performance-lesson__snapshot small{color:var(--gray-400);text-align:right}.shader-performance-lesson__interview{display:grid;gap:.45rem;padding:1rem;border:1px solid color-mix(in srgb,var(--accent-regular) 42%,var(--gray-700));border-radius:.65rem;background:color-mix(in srgb,var(--accent-regular) 6%,transparent)}.shader-performance-lesson__interview strong{color:var(--gray-100);font-size:1rem}.shader-performance-lesson__interview p{max-width:74ch;color:var(--gray-300);line-height:1.65}.shader-performance-lesson__interview small{color:var(--gray-400);line-height:1.5}.shader-performance-lesson__interview details summary{display:flex;min-height:44px;align-items:center;color:var(--gray-300);font-size:.75rem;font-weight:700;cursor:pointer}.shader-performance-lesson__interview details summary:focus-visible{outline:2px solid var(--accent-regular);outline-offset:3px}.shader-performance-lab .lab-accessible-viewport__evidence,.shader-performance-lab .lab-accessible-viewport__help,.shader-performance-lesson p{max-width:68ch}@media(min-width:68.75em){.shader-performance-evidence{grid-template-columns:minmax(12rem,.8fr) minmax(19rem,1.2fr)}.shader-performance-evidence__heading{grid-column:1 / -1}.shader-performance-timeline{padding-top:0;padding-left:.75rem;border-top:0;border-left:1px solid rgba(232,241,238,.14)}}@media(max-width:50em){.shader-performance-lab__stage{grid-template-columns:minmax(0,1fr);gap:0}.shader-performance-viewport,.shader-performance-viewport--fallback{min-height:41rem}.shader-performance-controls{width:auto;margin:.65rem}.shader-performance-lab__stage-label{top:1rem;bottom:auto}.shader-performance-timeline__segments>div{grid-template-columns:minmax(0,1fr) 3.8rem}.shader-performance-timeline__segments>div>i{grid-column:1 / -1;grid-row:2}.shader-performance-lesson__action{grid-template-columns:1fr}.shader-performance-lesson__action button{width:max-content}.shader-performance-lesson__grid{grid-template-columns:1fr}.shader-performance-lesson__grid article,.shader-performance-lesson__grid article:first-child{min-height:auto;padding:.85rem 0;border-right:0}.shader-performance-lesson__snapshot{grid-template-columns:1fr auto}.shader-performance-lesson__snapshot small{grid-column:1 / -1;text-align:left}}
