.sim{gap:var(--works-gap);display:grid}.sim__task,.sim__success,.sim-ctl__hint,.sim__note{font-family:var(--ff-body);font-size:var(--works-fs-body);line-height:var(--works-lh-body);letter-spacing:var(--ls-body);font-weight:var(--works-fw-body);color:var(--c-body)}.sim__stage{gap:var(--works-gap);grid-template-columns:minmax(0,1fr);display:grid}@media (min-width:768px){.sim__stage{grid-template-columns:repeat(2,minmax(0,1fr))}}.sim__view{background:var(--c-bg);border:1px solid var(--c-rule);padding:1rem}.sim__view-title,.sim-ctl__label,.sim__readout{font-family:var(--ff-mono);font-size:var(--fs-foot);line-height:var(--lh-foot);letter-spacing:var(--ls-foot);font-weight:var(--fw-foot);color:var(--c-muted)}.sim__view-title{margin-bottom:.5rem}.sim__canvas{aspect-ratio:1;width:100%;display:block}.sim__controls{gap:var(--works-gap);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}@media (min-width:1024px){.sim__controls{grid-template-columns:repeat(4,minmax(0,1fr))}}.sim-ctl{background:var(--c-bg);border:1px solid var(--c-rule);flex-direction:column;gap:.75rem;min-width:0;padding:1rem;display:flex}.sim-ctl__label{color:var(--c-soft);justify-content:space-between;gap:.5rem;display:flex}.sim-ctl__value{color:var(--c-text);font-variant-numeric:tabular-nums}.sim-range{width:100%;min-height:44px;accent-color:var(--c-text);margin:0}.sim-toggle{gap:.5rem;display:flex}.sim-toggle button,.sim__redraw{border-radius:var(--btn-r);min-height:44px;font-family:var(--ff-mono);font-size:var(--fs-button);letter-spacing:var(--ls-button);font-weight:var(--fw-button);cursor:pointer}.sim-toggle button{color:var(--c-soft);border:1px solid var(--c-rule);background:0 0;flex:1}.sim-toggle button[aria-pressed=true]{background:var(--c-text);border-color:var(--c-text);color:var(--c-bg)}.sim__row{justify-content:space-between;align-items:center;gap:var(--works-gap);flex-wrap:wrap;display:flex}.sim__readouts{flex-wrap:wrap;align-items:baseline;gap:.5rem 2rem;display:flex}.sim__readout b{color:var(--c-text);font-weight:var(--fw-foot);font-variant-numeric:tabular-nums}.sim__success{color:var(--c-text)}.sim__redraw{padding-inline:var(--btn-px);color:var(--c-text);border:1px solid var(--c-text);background:0 0}.sim__note-tag{color:var(--c-text)}
.evolution{--evolution-top:calc(5.75rem + var(--works-gap));--evolution-below:12rem;--evolution-margin:var(--works-gap);height:calc(var(--evolution-count) * 60vh);position:relative}@media (min-width:768px){.evolution{--evolution-top:calc(6rem + var(--works-gap))}}.evolution__stage{top:var(--evolution-top);--evolution-progress-gap:.75rem;--evolution-photo-w:min(100cqw, calc((var(--vh,1vh) * 100 - var(--evolution-top) - var(--evolution-below) - var(--evolution-margin)) * 4 / 3));gap:1.5rem;display:grid;position:sticky;container-type:inline-size}.evolution__items{margin:0;padding:0;list-style:none;display:grid}.evolution__item{opacity:0;grid-area:1/1;transition:opacity .4s}.evolution__item[data-active]{opacity:1}.evolution__figure{gap:0;margin:0;display:grid}.evolution__photo{justify-items:center;display:grid}.evolution__img{width:var(--evolution-photo-w);aspect-ratio:4/3;object-fit:cover;object-position:center;height:auto;display:block}.evolution__img[data-fit=contain]{object-fit:contain;background:var(--c-bg)}.evolution__trio{width:var(--evolution-photo-w);aspect-ratio:4/3;grid-template-columns:repeat(3,minmax(0,1fr));align-content:end;align-items:center;gap:.5rem;display:grid}.evolution__tile{width:100%;height:auto;display:block}@media (min-width:768px){.evolution__trio{gap:1rem}}.evolution__caption{margin-top:calc(var(--evolution-progress-gap) + 1px + 1rem);width:min(var(--works-read-w), 100%);flex-direction:column;justify-self:center;gap:.5rem;display:flex}.evolution__count,.evolution__date{font-family:var(--ff-mono);font-size:var(--fs-foot);line-height:var(--lh-foot);letter-spacing:var(--ls-foot);color:var(--c-body);font-variant-numeric:tabular-nums}.evolution__line{font-size:var(--works-fs-body);line-height:var(--works-lh-body);font-weight:var(--works-fw-body);color:var(--c-body)}.evolution__progress{top:calc(var(--evolution-photo-w) * 3 / 4 + var(--evolution-progress-gap));width:min(var(--works-read-w), 100%);background:var(--c-rule);height:1px;position:absolute;left:50%;overflow:hidden;translate:-50%}.evolution__progress-fill{background:var(--c-body);transform-origin:0;height:100%;transform:scaleX(calc((var(--evolution-step,0) + 1) / var(--evolution-count)));transition:transform .4s;display:block}html:not(.is-runtime) .evolution,html.is-reduced-motion .evolution{height:auto}html:not(.is-runtime) .evolution__stage,html.is-reduced-motion .evolution__stage{position:static}html:not(.is-runtime) .evolution__items,html.is-reduced-motion .evolution__items{gap:calc(var(--works-gap) * 2);flex-direction:column;display:flex}html:not(.is-runtime) .evolution__caption,html.is-reduced-motion .evolution__caption{margin-top:1rem}html:not(.is-runtime) .evolution__item,html.is-reduced-motion .evolution__item{opacity:1;transition:none}html:not(.is-runtime) .evolution__photo,html.is-reduced-motion .evolution__photo{display:block}html:not(.is-runtime) .evolution__img,html.is-reduced-motion .evolution__img,html:not(.is-runtime) .evolution__trio,html.is-reduced-motion .evolution__trio{width:100%}html:not(.is-runtime) .evolution__progress,html.is-reduced-motion .evolution__progress{display:none}
.diagram{align-content:start;gap:1rem;margin:0;display:grid}.diagram__svg{width:100%;height:auto;display:block;overflow:visible}.diagram__line{fill:none;stroke:var(--c-text);stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round}.diagram__line--em{stroke:var(--c-violet)}.diagram__line--seg{stroke-linecap:butt}.diagram__line--dash{stroke-dasharray:5 4}.diagram__joint{fill:var(--c-bg)}.diagram__mask{stroke:var(--c-text);stroke-width:6px}.diagram__label{font-family:var(--ff-mono);font-size:var(--fs-foot);letter-spacing:var(--ls-foot);fill:var(--c-soft)}.diagram__label--em{fill:var(--c-violet)}.diagram__label--strong{fill:var(--c-text)}.diagram__num{fill:var(--c-amber);color:var(--c-amber)}.diagram__formula{font-family:var(--ff-mono);font-size:var(--fs-foot);line-height:var(--lh-foot);letter-spacing:var(--ls-foot);color:var(--c-soft);margin:0}.diagram__formula-piece{white-space:nowrap}@media (min-width:768px){.problem .diagram__formula,.math .diagram__formula{font-size:.8333rem}}.problems{gap:calc(var(--works-gap) * 3);display:grid}.problem{gap:var(--works-gap);display:grid}.problem__title{font-size:var(--fs-statement);line-height:var(--lh-statement);letter-spacing:var(--ls-statement);font-weight:var(--fw-statement)}.problem .body{max-width:none;font-size:var(--works-fs-body);line-height:var(--works-lh-body);font-weight:var(--works-fw-body);color:var(--c-body)}.math__photo{position:relative}.math__overlay{aspect-ratio:1600/536;pointer-events:none;position:absolute;inset:0 0 auto}.math__conditions{font-family:var(--ff-mono);font-size:var(--fs-foot);line-height:var(--lh-foot);letter-spacing:var(--ls-foot);color:var(--c-soft);gap:.75rem;margin:0;padding:0;list-style:none;display:grid}.math__condition{align-items:center;gap:1rem;display:flex}.math__glyph{flex:none;width:40px;height:24px;overflow:visible}.shapes__list{gap:var(--works-gap);grid-template-columns:repeat(5,minmax(0,1fr));margin:0;padding:0;list-style:none;display:grid}.shapes__item{justify-items:center;gap:.75rem;display:grid}.shapes__icon{max-width:72px}.shapes__name{font-family:var(--ff-mono);font-size:var(--fs-foot);line-height:var(--lh-foot);letter-spacing:var(--ls-foot);color:var(--c-soft)}.shapes__note{text-align:center}
