.harness-gem{overflow:visible}.harness-gem .gem-facet{fill:var(--c);stroke:#00000040;stroke-width:2px;stroke-linejoin:round;transition:fill .6s,stroke .6s,transform .8s cubic-bezier(.2,.9,.25,1.25),opacity .6s}.harness-gem .gem-table{fill:var(--table);stroke:#00000040;stroke-width:2px;transition:fill .6s}.harness-gem .gem-sheen{pointer-events:none;opacity:var(--progress,1);transition:opacity .6s}.harness-gem .gem-counter{fill:#fff;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:40px;font-weight:600}.harness{--glow:transparent;--progress:1}.harness-glow{background:radial-gradient(60rem 40rem at 20% 45%, color-mix(in srgb, var(--glow) 18%, transparent), transparent 70%);transition:background .8s}.harness-gem-tilt{--rx:0deg;--ry:0deg;transform:perspective(900px) rotateX(var(--rx)) rotateY(var(--ry));transition:transform .25s ease-out}.harness-gem-tilt .gem-facet{cursor:pointer}.harness.js .harness-gem-tilt .gem-facet:hover{stroke:#fff;stroke-dasharray:none}.harness-gem-wrap{filter:drop-shadow(0 0 60px color-mix(in srgb, var(--glow) 55%, transparent));transition:filter .8s;animation:7s ease-in-out infinite harness-float}.harness-segment{background:var(--c);transition:background .4s}.harness-step .step-dot{background:var(--c)}.harness-term{opacity:0;visibility:hidden;box-shadow:0 0 0 1px color-mix(in srgb, var(--c) 35%, transparent);transition:opacity .4s,transform .4s,visibility .4s;transform:translateY(10px)}.harness-term.is-active{opacity:1;visibility:visible;transform:none}.harness-term .term-line{opacity:0;transition:opacity .35s,transform .35s;transform:translate(-6px)}.harness-term.is-active .term-line{opacity:1;transition-delay:calc(.15s + var(--i) * .22s);transform:none}.harness.js .gem-facet:not(.is-lit){fill:#ffffff0d;stroke:#ffffff38;stroke-dasharray:6 6;transform:translate(var(--dx), var(--dy))}.harness.js .gem-facet.is-active{filter:brightness(1.12)}.harness.js .gem-table:not(.is-lit){fill:#1e1e1e;stroke:#ffffff38}.harness.js .harness-segment:not(.is-lit){background:#ffffff1f}.harness.js .harness-step{opacity:.35;transition:opacity .5s}.harness.js .harness-step.is-active{opacity:1}.harness-complete-halo{filter:blur(20px);background:radial-gradient(closest-side at 45% 45%,#9999f859,#0000),radial-gradient(closest-side at 60% 60%,#ffa9f840,#0000);width:28rem;height:28rem;top:50%;left:-6rem;transform:translateY(-50%)}@media (width<=1023px){.harness-complete-halo{top:7rem;left:50%;transform:translate(-50%,-50%)}}.harness-complete{transition:transform .8s cubic-bezier(.2,.9,.25,1),opacity .8s}.harness.js:not(.is-complete) .harness-complete{opacity:.6;transform:translateY(2rem)scale(.97)}.harness-complete-gem .gem-facet,.harness-complete-gem .gem-table{fill:var(--c,var(--table))!important;stroke:#00000040!important;stroke-dasharray:none!important;transform:none!important}.harness-complete-gem .gem-table{fill:var(--table)!important}@keyframes harness-float{0%,to{transform:translateY(0)rotate(-2deg)}50%{transform:translateY(-12px)rotate(2deg)}}@media (prefers-reduced-motion:reduce){.harness-gem-wrap{animation:none}.harness *,.harness :before{transition-duration:0s!important;transition-delay:0s!important}}[data-spotlight]{--mx:50%;--my:50%}[data-spotlight]:after{content:"";pointer-events:none;background:radial-gradient(28rem circle at var(--mx) var(--my), #ffffff0f, transparent 70%);opacity:var(--spot,0);transition:opacity .4s;position:absolute;inset:0}.is-scrambling{color:#0000!important}.scramble-overlay{pointer-events:none;position:absolute;inset:0}.scramble-char{color:#ffb45b}#harness-switch .switch{color:#fd756c;background:#fd756c26;transition:background .3s,color .3s}#harness-switch .switch-track{background:#ffffff26;transition:background .3s}#harness-switch .switch-thumb{transition:left .3s cubic-bezier(.2,.9,.25,1.3);left:.25rem}#harness-switch.is-on .switch{color:#61d180;background:#61d18026}#harness-switch.is-on .switch-track{background:#61d180}#harness-switch.is-on .switch-thumb{left:1.5rem}#harness-switch .switch-terminal{transition:box-shadow .5s}#harness-switch.is-on .switch-terminal{box-shadow:0 0 0 2px #61d180,0 25px 60px -15px #61d18073}#harness-switch:not(.is-on) .switch-terminal{box-shadow:0 0 0 2px #fd756c99,0 25px 60px -15px #fd756c59}#harness-switch .indicator-value{color:#61d180;transition:color .3s}#harness-switch:not(.is-on) .indicator-value{color:#e95f54}#harness-switch .indicator-value>span{grid-area:1/1}#harness-switch.is-on .indicator-off,#harness-switch:not(.is-on) .indicator-on{visibility:hidden}#harness-switch .indicator-value.is-flipping{animation:.45s indicator-flip}#harness-switch .switch-line{animation:.3s both switch-line-in}#harness-switch:not(.is-on) .switch-terminal.is-glitching{animation:.35s steps(2,end) 2 switch-glitch}#harness-switch .switch-hint{animation:1.2s ease-in-out infinite switch-hint}@keyframes indicator-flip{0%{transform:rotateX(0)}50%{transform:rotateX(90deg)}to{transform:rotateX(0)}}@keyframes switch-line-in{0%{opacity:0;transform:translateY(6px)}}@keyframes switch-glitch{50%{filter:hue-rotate(40deg);transform:translate(-3px,1px)skew(-1deg)}}@keyframes switch-hint{50%{transform:translate(-6px)}}@media (width<=1023px){#harness-switch .switch-hint span{display:inline-block;transform:rotate(90deg)}}@media (prefers-reduced-motion:reduce){#harness-switch .switch-line,#harness-switch .indicator-value.is-flipping,#harness-switch .switch-terminal.is-glitching,#harness-switch .switch-hint{animation:none}}dl[data-astro-cid-45ezpnvs]>div[data-astro-cid-45ezpnvs]{flex-direction:column;display:flex}.logo-marquee[data-astro-cid-45ezpnvs]{mask-image:linear-gradient(90deg,#0000,#000 12% 88%,#0000)}.logo-track[data-astro-cid-45ezpnvs]{animation:40s linear infinite logo-scroll}.logo-marquee[data-astro-cid-45ezpnvs]:hover .logo-track[data-astro-cid-45ezpnvs]{animation-play-state:paused}@keyframes logo-scroll{to{transform:translate(calc(-50% - 2rem))}}@media (prefers-reduced-motion:reduce){.logo-track[data-astro-cid-45ezpnvs]{flex-wrap:wrap;justify-content:center;width:auto;animation:none}}.student-diffs .diff-panel{grid-area:1/1;min-width:0}.student-diffs .diff-panel:not(.is-active){visibility:hidden}.student-diffs .diff-tab[aria-selected=true]{background:#ffffff12}.student-diffs .diff-progress{width:0}.student-diffs.is-playing .diff-tab[aria-selected=true] .diff-progress{animation:diff-progress var(--interval,7s) linear forwards}.student-diffs.is-paused .diff-tab[aria-selected=true] .diff-progress{animation-play-state:paused}.student-diffs .diff-line.del{color:#fd756c;background:#fd756c1a}.student-diffs .diff-line.add{color:#61d180;background:#61d1801a}.student-diffs .diff-line .diff-text{color:#fff}.student-diffs .diff-line.del .diff-text{color:#ffffff8c}.student-diffs .diff-line.del .diff-words{box-decoration-break:clone;background:linear-gradient(currentColor,currentColor) 0 55%/0 1px no-repeat}.student-diffs .diff-panel.is-active .diff-line{animation:.45s cubic-bezier(.2,.8,.2,1) both diff-line-in;animation-delay:calc(var(--i) * .28s)}.student-diffs .diff-panel.is-active .diff-line.del .diff-words{animation:.6s forwards diff-strike;animation-delay:calc(var(--i) * .28s + .5s)}@keyframes diff-progress{to{width:100%}}@keyframes diff-line-in{0%{opacity:0;transform:translate(-10px)}}@keyframes diff-strike{to{background-size:100% 1px}}@media (prefers-reduced-motion:reduce){.student-diffs .diff-panel.is-active .diff-line{animation:none}.student-diffs .diff-panel.is-active .diff-line.del .diff-words{background-size:100% 1px;animation:none}}
