/* Isolated research-interactive design system. All rules are scoped to the lesson. */
.prism-lab{--pl-accent:#a2d5ff;--pl-bg:#080f14;--pl-panel:#0c171f;--pl-ink:#eef5f6;--pl-muted:#a1b3bd;--pl-line:#22343f;color-scheme:dark;isolation:isolate;position:relative;width:100%;max-width:none;margin:0;padding:42px 0 52px;background:radial-gradient(ellipse at 12% 0%,#172b38 0%,transparent 52%),var(--pl-bg);color:var(--pl-ink);font:400 16px/1.55 ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;text-align:left;letter-spacing:normal;overflow:clip;box-sizing:border-box}
.prism-lab[data-pl-series=FIRE]{--pl-accent:#ffb18f}.prism-lab[data-pl-series=REEF]{--pl-accent:#7be1cc}.prism-lab[data-pl-series=DLT]{--pl-accent:#c6b4ff}
.prism-lab *,.prism-lab *::before,.prism-lab *::after{box-sizing:border-box}.prism-lab :is(h2,h3,p,figure,dl,dt,dd){margin:0;padding:0;max-width:none;letter-spacing:normal;text-transform:none}.prism-lab :is(button,input,select,a){font:inherit}.prism-lab :is(button,input,select){appearance:auto}.prism-lab a{color:inherit;text-decoration:none;border:0;background:none}.prism-lab a:hover{text-decoration:underline;text-underline-offset:5px}.prism-lab button{cursor:pointer;position:static;transform:none;box-shadow:none;text-transform:none;letter-spacing:normal}.prism-lab button:disabled{cursor:default;opacity:.4}.prism-lab :is(button,input,select,a):focus-visible{outline:2px solid var(--pl-accent);outline-offset:5px}.prism-lab button::before,.prism-lab button::after{content:none}
.prism-lab .pl-shell{max-width:1440px;margin:0 auto;padding:0 clamp(20px,4.2vw,76px)}
.prism-lab .pl-topline{display:flex;justify-content:space-between;align-items:center;gap:24px;color:var(--pl-muted);font-size:12px;letter-spacing:.04em;padding-bottom:38px}.prism-lab .pl-topline a{color:var(--pl-ink);font-size:14px}.prism-lab .pl-topline span{text-align:right}
.prism-lab .pl-opening{display:grid;grid-template-columns:1.4fr 1fr;gap:clamp(28px,5vw,90px);align-items:end;margin-bottom:26px}.prism-lab .pl-eyebrow{color:var(--pl-accent);font:600 10px/1.3 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.18em;margin-bottom:16px}.prism-lab h2{font:500 clamp(34px,4.5vw,66px)/1.05 ui-sans-serif,system-ui,sans-serif;letter-spacing:-.055em;max-width:780px;color:var(--pl-ink);text-wrap:balance}.prism-lab .pl-deck{font-size:clamp(16px,1.55vw,21px);line-height:1.6;color:var(--pl-muted);max-width:450px;padding-bottom:4px}.prism-lab .pl-status-line{display:flex;align-items:baseline;gap:16px;color:var(--pl-muted);font-size:12px;margin:0 0 26px}.prism-lab .pl-status-line span:first-child{color:var(--pl-accent);border:1px solid var(--pl-line);padding:4px 10px;border-radius:30px;flex-shrink:0}.prism-lab .pl-status-line span:last-child{max-width:900px}
.prism-lab .pl-experiment{background:linear-gradient(135deg,#101d26,#0a141b);border:1px solid #30434e;border-radius:18px;overflow:hidden;box-shadow:0 35px 80px #0003}.prism-lab .pl-toolbar{min-height:66px;padding:12px 24px;display:flex;justify-content:space-between;align-items:center;gap:15px;border-bottom:1px solid var(--pl-line);background:#10212b40}.prism-lab .pl-toolbar-title{display:flex;align-items:center;gap:10px;font-size:13px;color:#c8d5db}.prism-lab .pl-indicator{width:6px;height:6px;border-radius:50%;background:var(--pl-accent);box-shadow:0 0 16px var(--pl-accent)}.prism-lab .pl-actions{display:flex;gap:8px}.prism-lab .pl-actions button,.prism-lab .pl-chapter-actions button{border:1px solid #36505f;background:#0b1822;color:#d2e0e7;border-radius:8px;padding:9px 13px;min-height:42px;font-size:12px;font-weight:500;transition:background .18s,border-color .18s}.prism-lab .pl-actions button:hover:not(:disabled),.prism-lab .pl-chapter-actions button:hover:not(:disabled){background:#1d3543;border-color:#88a8bb}.prism-lab [data-pl-play]{min-width:98px}.prism-lab [data-pl-play][aria-pressed=true]{color:var(--pl-accent);border-color:var(--pl-accent)}
.prism-lab .pl-stage{display:grid;grid-template-columns:minmax(0,2.12fr) minmax(260px,1fr);min-height:425px}.prism-lab .pl-figure{align-self:center;min-width:0;position:relative;margin:0;padding:12px 18px 16px;overflow:hidden;background:radial-gradient(ellipse at 50% 38%,#19313b33,transparent 70%)}.prism-lab [data-pl-canvas]{width:100%;min-height:150px}.prism-lab .pl-svg{display:block;width:100%;height:auto;max-width:none;overflow:visible;font-family:ui-sans-serif,system-ui,sans-serif}.prism-lab .pl-svg text{font-family:ui-sans-serif,system-ui,sans-serif;font-weight:400;letter-spacing:0}.prism-lab figcaption{display:block;text-align:center;color:#8ba1ad;font-size:11px;line-height:1.6;padding:2px 8px 0}.prism-lab .pl-narrative{display:flex;flex-direction:column;padding:32px 30px 26px;border-left:1px solid var(--pl-line);background:#0a141c80;min-width:0}.prism-lab .pl-chapter-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:10px;color:#849da9;text-transform:uppercase;letter-spacing:.12em;margin-bottom:30px}.prism-lab [data-pl-position]{color:var(--pl-accent);font-variant-numeric:tabular-nums;letter-spacing:.08em}.prism-lab h3{font:500 clamp(22px,2vw,29px)/1.19 ui-sans-serif,system-ui,sans-serif;color:var(--pl-ink);letter-spacing:-.035em;text-wrap:balance;margin-bottom:17px}.prism-lab [data-pl-body]{font-size:14px;line-height:1.8;color:#b4c5ce}.prism-lab .pl-chapter-actions{display:flex;gap:8px;margin-top:auto;padding-top:26px}.prism-lab .pl-chapter-actions button{min-height:42px}.prism-lab .pl-story-track{height:2px;background:#22323e;margin-top:20px;overflow:hidden}.prism-lab .pl-story-track span{display:block;width:0;height:100%;background:var(--pl-accent)}
.prism-lab .pl-controls{display:flex;gap:26px;flex-wrap:wrap;padding:24px 28px;border-top:1px solid var(--pl-line);border-bottom:1px solid var(--pl-line);background:#0b151d}.prism-lab .pl-control{flex:1 1 190px;min-width:0;max-width:100%}.prism-lab .pl-control label{display:block;font-size:11px;letter-spacing:.01em;font-weight:500;color:#b6c7d0;margin:0 0 10px}.prism-lab .pl-range-row{display:flex;align-items:center;gap:16px;min-height:36px}.prism-lab .pl-range-row input{display:block;min-width:0;width:100%;height:28px;accent-color:var(--pl-accent);margin:0;padding:0;background:transparent;border:0;cursor:ew-resize}.prism-lab output{min-width:40px;color:var(--pl-accent);font:500 15px/1.2 ui-monospace,monospace;text-align:right}.prism-lab select{width:100%;min-height:42px;max-width:100%;background:#14242e;color:#dde9ef;border:1px solid #36515f;border-radius:7px;padding:7px 26px 7px 11px;font-size:13px;cursor:pointer}
.prism-lab .pl-chapters{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));padding:0;background:#0b161e;border-bottom:1px solid var(--pl-line)}.prism-lab .pl-chapter{display:flex;align-items:flex-start;gap:13px;text-align:left;min-height:83px;min-width:0;border:0;border-right:1px solid var(--pl-line);border-top:2px solid transparent;background:none;color:#89a0ad;border-radius:0;padding:18px 20px}.prism-lab .pl-chapter:last-child{border-right:0}.prism-lab .pl-chapter span{font:500 11px/1.6 ui-monospace,monospace}.prism-lab .pl-chapter strong{font-weight:500;font-size:12px;line-height:1.5;overflow-wrap:anywhere}.prism-lab .pl-chapter[aria-pressed=true]{color:var(--pl-accent);background:#21374366;border-top-color:var(--pl-accent)}.prism-lab .pl-chapter:hover{background:#21374355}
.prism-lab .pl-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));padding:25px 28px;gap:24px}.prism-lab .pl-metric{min-width:0}.prism-lab .pl-metric dt{font-size:10px;line-height:1.5;color:#a3b5bf;margin:0 0 9px}.prism-lab .pl-metric dd{font:400 clamp(17px,2.1vw,29px)/1.22 ui-sans-serif,system-ui,sans-serif;letter-spacing:-.035em;color:#e5f2f2;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
.prism-lab .pl-result{padding:0 28px 25px}.prism-lab [data-pl-summary]{font-size:13px;line-height:1.8;color:#a6bcc7;min-height:46px}.prism-lab .pl-formula{margin-top:16px;font:400 12px/1.8 ui-monospace,SFMono-Regular,monospace;color:var(--pl-accent);overflow-wrap:anywhere}.prism-lab .pl-challenge{display:flex;align-items:baseline;gap:20px;padding:19px 28px;border-top:1px solid var(--pl-line);background:#18323c40}.prism-lab .pl-challenge span{flex-shrink:0;font-size:10px;letter-spacing:.1em;color:var(--pl-accent);font-weight:600}.prism-lab .pl-challenge p{font-size:13px;line-height:1.65;color:#c3d1d8}
.prism-lab .pl-footnote{display:grid;grid-template-columns:1.5fr 1fr;gap:50px;margin-top:23px}.prism-lab .pl-footnote p{font-size:11px;line-height:1.85;color:#8ea4b0}.prism-lab .pl-footnote strong{font-weight:500;color:#bbcbd3}.prism-lab .pl-footnote>div{display:flex;justify-content:flex-end;flex-direction:column;align-items:flex-end;gap:13px;font-size:12px;color:#c8dbe5}.prism-lab .pl-noscript{padding:28px 0;font-size:15px}.prism-lab .pl-noscript h3{margin:25px 0 12px}.prism-lab[data-pl-error=true] .pl-indicator{background:#ff9c92}
.prism-lab.pl-motion .pl-draw{stroke-dasharray:1;stroke-dashoffset:0;animation:pl-stroke 1s ease both}.prism-lab.pl-motion .pl-rise{animation:pl-reveal .55s ease both}.prism-lab.pl-motion .pl-tile{animation:pl-reveal .65s ease both}.prism-lab.pl-motion.pl-playing .pl-story-track span{animation:pl-timer 7.5s linear infinite}.prism-lab.pl-motion.pl-playing .pl-indicator{animation:pl-pulse 2s ease-in-out infinite}
@keyframes pl-stroke{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}@keyframes pl-reveal{from{opacity:.1}to{opacity:1}}@keyframes pl-timer{from{width:0}to{width:100%}}@keyframes pl-pulse{50%{opacity:.35}}
@media(min-width:1700px){.prism-lab .pl-stage{min-height:490px}}
@media(max-width:1000px){.prism-lab .pl-shell{padding:0 28px}.prism-lab .pl-stage{grid-template-columns:minmax(0,1.6fr) minmax(250px,1fr)}.prism-lab .pl-narrative{padding:24px}.prism-lab .pl-chapter{padding:16px 12px;gap:8px}.prism-lab .pl-opening{gap:30px}}
@media(max-width:760px){.prism-lab{padding:28px 0 38px}.prism-lab .pl-shell{padding:0 18px}.prism-lab .pl-topline{font-size:10px;padding-bottom:26px;gap:16px}.prism-lab .pl-topline span{max-width:180px}.prism-lab .pl-topline a{font-size:12px;flex-shrink:0}.prism-lab .pl-opening{grid-template-columns:1fr;gap:20px}.prism-lab h2{font-size:clamp(34px,7vw,50px);max-width:590px}.prism-lab .pl-deck{font-size:16px;max-width:590px}.prism-lab .pl-status-line{display:block;line-height:1.8}.prism-lab .pl-status-line span:first-child{display:inline-block;margin-bottom:10px}.prism-lab .pl-status-line span:last-child{display:block;font-size:11px}.prism-lab .pl-experiment{border-radius:13px}.prism-lab .pl-toolbar{padding:12px 14px;gap:12px;flex-wrap:wrap}.prism-lab .pl-toolbar-title{font-size:11px}.prism-lab .pl-actions{gap:6px}.prism-lab .pl-actions button{font-size:11px;padding:8px 10px;min-height:40px}.prism-lab [data-pl-play]{min-width:87px}.prism-lab .pl-stage{grid-template-columns:1fr;min-height:0}.prism-lab .pl-figure{padding:10px 4px 16px}.prism-lab figcaption{font-size:10px;padding:0 17px}.prism-lab .pl-narrative{border-left:0;border-top:1px solid var(--pl-line);padding:22px}.prism-lab .pl-chapter-meta{margin-bottom:19px}.prism-lab h3{font-size:24px}.prism-lab [data-pl-body]{font-size:14px;line-height:1.75}.prism-lab .pl-chapter-actions{padding-top:20px}.prism-lab .pl-story-track{margin-top:16px}.prism-lab .pl-controls{padding:22px;gap:20px}.prism-lab .pl-control{flex-basis:100%}.prism-lab .pl-controls label{font-size:12px}.prism-lab .pl-chapters{grid-template-columns:repeat(2,minmax(0,1fr))}.prism-lab .pl-chapter{min-height:82px;padding:16px 14px;border-bottom:1px solid var(--pl-line)}.prism-lab .pl-chapter strong{font-size:11px}.prism-lab .pl-metrics{gap:12px;padding:22px 18px}.prism-lab .pl-metric dt{font-size:9px;line-height:1.5}.prism-lab .pl-metric dd{font-size:19px}.prism-lab .pl-result{padding:0 20px 20px}.prism-lab [data-pl-summary]{font-size:12px}.prism-lab .pl-formula{font-size:11px}.prism-lab .pl-challenge{display:block;padding:18px 20px}.prism-lab .pl-challenge span{display:block;margin-bottom:8px}.prism-lab .pl-challenge p{font-size:12px}.prism-lab .pl-footnote{grid-template-columns:1fr;gap:19px}.prism-lab .pl-footnote>div{align-items:flex-start}.prism-lab .pl-footnote p{font-size:11px}.prism-lab .pl-footnote>div a{padding:5px 0}}
@media(prefers-reduced-motion:reduce){.prism-lab *{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
