.shader-performance-lab{display:grid;gap:3rem;padding-bottom:7rem}.shader-performance-lab__stage{position:relative;min-height:34rem;overflow:hidden;border:1px solid var(--gray-700);border-radius:1.25rem;background:#080c12;box-shadow:var(--shadow-lg)}.shader-performance-viewport{position:absolute;inset:0;min-height:34rem}.shader-performance-viewport canvas{display:block;width:100%!important;height:100%!important;min-height:34rem}.shader-performance-viewport--fallback{display:grid;min-height:34rem;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-timeline{position:absolute;z-index:3;right:1rem;bottom:1rem;width:min(27rem,calc(100% - 2rem));padding:.7rem .75rem;border:1px solid rgba(232,241,238,.2);border-radius:.65rem;color:#e8f1ee;background:#080c12d6;box-shadow:0 12px 28px #0000003d;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;pointer-events:none;backdrop-filter:blur(10px)}.shader-performance-timeline--hidden{width:auto;padding:.4rem .55rem;color:#e8f1eead;font-size:.67rem}.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__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-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>p{margin:.5rem 0 0;color:#e8f1eeb3;font-size:.62rem;text-align:right}.shader-performance-controls{position:absolute;z-index:4;top:.75rem;right:.75rem;width:min(22rem,calc(100% - 1.5rem));color:#e8f1ee;border:1px solid rgba(232,241,238,.2);border-radius:.75rem;background:#0b1116e0;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{max-height:min(72vh,38rem);overflow:auto;padding:0 .7rem .7rem;scrollbar-width:thin}.shader-performance-controls__status{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.45rem .1rem .6rem;color:#aebbb6;font-size:.65rem}.shader-performance-controls__status .is-pending{color:#f0c987}.shader-performance-controls__status label,.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-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:30px;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%;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:40px;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--primary{color:#180d15;border-color:#d99bc3;background:#d99bc3}.shader-performance-controls__notes{display:grid;grid-template-columns:1fr 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__nav{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--gray-700)}.shader-performance-lesson__nav button{min-height:58px;display:grid;grid-template-columns:auto 1fr;gap:.45rem;align-items:center;padding:.5rem .45rem;border:0;border-bottom:1px solid var(--gray-700);color:var(--gray-400);background:transparent;text-align:left;cursor:pointer}.shader-performance-lesson__nav button+button{border-left:1px solid var(--gray-700)}.shader-performance-lesson__nav button strong{font-size:.7rem;line-height:1.2}.shader-performance-lesson__nav button.is-active{color:var(--gray-100);background:color-mix(in srgb,var(--accent-regular) 12%,transparent)}.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:40px;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-left:2px solid var(--accent-regular);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-lab .lab-accessible-viewport__evidence,.shader-performance-lab .lab-accessible-viewport__help,.shader-performance-lesson p{max-width:68ch}@media(max-width:50em){.shader-performance-lab__stage,.shader-performance-viewport,.shader-performance-viewport canvas,.shader-performance-viewport--fallback{min-height:31rem}.shader-performance-controls{top:.5rem;right:.5rem;width:min(19.5rem,calc(100% - 1rem))}.shader-performance-controls__body{max-height:min(66vh,29rem)}.shader-performance-lab__stage-label{top:auto;bottom:2.5rem}.shader-performance-timeline{right:.5rem;bottom:.5rem;width:calc(100% - 1rem)}.shader-performance-timeline--hidden{width:auto}.shader-performance-timeline__segments>div{grid-template-columns:6.5rem minmax(0,1fr) 3.8rem}.shader-performance-lesson__nav{grid-template-columns:repeat(2,1fr)}.shader-performance-lesson__nav button:nth-child(3){border-left:0}.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}}
