/* No CSS foreground glow or pool. Only the attached Three.js cone emits light. */
.lamp-scene{position:relative;isolation:isolate}
.lamp-lit-copy{position:relative;padding:10px 0 6px}
.page--article .prose .lamp-lit-copy>h2:first-child,.lamp-lit-copy>h2:first-child{margin-top:10px;padding-top:0;border-top:0}
/* Never dim or blend text. Its original foreground and contrast remain intact. */
.lamp-demo{--lamp-line:rgba(244,244,243,.13);--lamp-muted:#a5a6aa;position:relative;margin:1.25rem 0 1.25rem;padding:0;background:none;border:0;border-radius:0;overflow:visible;color:#f4f4f3;font-family:inherit}
.lamp-demo *{box-sizing:border-box}.lamp-demo [hidden]{display:none!important}
.lamp-sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.lamp-demo__stage{height:390px;position:relative;background:transparent;overflow:visible}
.lamp-demo__poster-frame{position:absolute;inset:0;overflow:hidden}
.lamp-demo__poster,.lamp-demo__canvas{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;display:block;margin:0}
/* Match the live camera's fixed vertical field of view at every stage width. */
.lamp-demo__poster{width:auto;max-width:none;left:50%;right:auto;transform:translateX(-50%)}
.lamp-demo__poster--off{visibility:hidden}
.lamp-demo[data-light="off"] .lamp-demo__poster--on{visibility:hidden}
.lamp-demo[data-light="off"] .lamp-demo__poster--off{visibility:visible}
.lamp-demo[data-state="ready"] .lamp-demo__poster{visibility:hidden}
.lamp-demo__canvas{z-index:-1;pointer-events:none}.lamp-demo__canvas canvas{display:block;width:100%;height:100%;outline-offset:-5px;touch-action:pan-y}
.lamp-demo__stage:focus-visible{outline:2px solid #83a8ff;outline-offset:4px;border-radius:8px}
.lamp-demo button{font:inherit;cursor:pointer;color:inherit;background:transparent;transition:background .16s,border-color .16s;min-height:44px;border:1px solid transparent}
.lamp-demo button:focus-visible,.lamp-demo summary:focus-visible{outline:2px solid #83a8ff;outline-offset:3px}.lamp-demo button:disabled{cursor:progress;opacity:.65}
.lamp-demo__start{position:static;border-radius:30px;padding:8px 14px!important;border-color:#ffffff22!important;background:#0a0a0ac9!important;font-size:12px!important;white-space:nowrap}
.lamp-demo__start:hover{background:#202124!important;border-color:#ffffff45!important}
.lamp-demo__hint{position:absolute;bottom:12px;right:20px;color:#a5a8af;font-size:12px;pointer-events:none}.lamp-demo__hint--touch{display:none}@media(hover:none){.lamp-demo__hint--mouse{display:none}.lamp-demo__hint--touch{display:inline}}
.lamp-demo__controls{display:flex;align-items:center;justify-content:center;gap:24px;flex-wrap:wrap;padding:3px 0}
.lamp-demo__finishes{border:0;padding:0;margin:0;display:flex;align-items:center;gap:2px;min-width:0}
.lamp-demo__finish-name{font-size:12px;color:#a5a8af;margin-right:5px;min-width:51px}
.lamp-demo__finishes button{display:flex;align-items:center;justify-content:center;width:44px;padding:5px;border-radius:50%}
.lamp-demo__finishes button[aria-pressed="true"]{border-color:#929ba7}
.lamp-demo__finishes button:hover{background:#ffffff0b}
.lamp-demo__finishes button>span{width:18px;height:18px;background:var(--swatch);border:1px solid #ffffff30;border-radius:50%;box-shadow:inset 0 1px 2px #ffffff25}
.lamp-demo__utilities{margin:0 auto;text-align:center;color:#a5a8af;font-size:12px}
/* Reserve the closed controls row before 3D loads, without exposing hidden UI. */
.lamp-demo[data-enhanced] .lamp-demo__utilities[hidden]{display:block!important;visibility:hidden;pointer-events:none}
.lamp-demo__utilities>summary{cursor:pointer;min-height:44px;padding:12px;width:max-content;margin:auto}
.lamp-demo__utilities>div{display:inline-flex;gap:2px}.lamp-demo__utilities button{padding:4px 12px;border-radius:6px;color:#b5b8be;font-size:12px}.lamp-demo__utilities>div button{font-size:21px;min-width:44px}.lamp-demo__utilities button:hover{background:#ffffff0b;color:#f4f4f3}
.lamp-demo[data-state="error"] .lamp-demo__status,.lamp-demo .lamp-demo__notice{position:static!important;width:auto!important;height:auto!important;overflow:visible!important;clip:auto!important;white-space:normal!important;color:#a5a8af;font-size:12px!important;line-height:1.6;margin:8px 0!important;padding:0!important;text-align:center}
@media(max-width:600px){.lamp-demo__stage{height:330px}.lamp-demo__controls{gap:5px 12px}.lamp-demo__start,.lamp-demo__hint{right:4px}.lamp-demo__finish-name{display:none}}
@media(prefers-reduced-motion:reduce){.lamp-demo *{transition:none!important}}
